İki "Web Sitesi" yapılandırma kapsamı hariç tümü için Magento Backend 404


14

Multiwebsite / Multistore (görünüm) Magento 1.9.2.2 yapılandırmasında, mağaza ve mağaza görünümü de dahil olmak üzere web sitelerinden birinin kaldırılması gerekiyordu.

Kaldırma işleminin kendisi iyi giderken (bunu daha önce yaptım), Mevcut Yapılandırma Kapsamınızı iki web sitesinden herhangi birine değiştirirseniz 404'lerin bir arka ucuyla karşılaştım.

Yeni bir Yapılandırma Kapsamı seçilmesi, aşağıdaki URL için bir istekle sonuçlanır (yönetici yolu + anahtarı değiştirilir):

/index.php/mymageadmin/system_config/edit/section/dev/website/<WEBSITE>/key/1221231/

burada tablodaki alana <WEBSITE>eşittir .codecore_website

Mysql sorgu oturum açma ile ben başarıyla yüklenebilir iki web sitesi web sitesi / storeview seçme ile ilgili bu sorgulara sahip görüyorum:

SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '4') AND (`path` LIKE 'dev/%')
SELECT `core_website`.* FROM `core_website` WHERE (`core_website`.`code`='working_store_code')

404 veren diğer web siteleri aynı ilk sorgu ile başlar - ama elbette farklı bir scope_id, ancak ikinci sorguda Magento storeviewbunun yerine bir kapsam araması gerektiğini düşünüyor website! Aslında iki kez deniyor gibi görünüyor.

SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '3') AND (`path` LIKE 'dev/%')
SELECT `core_store`.* FROM `core_store` WHERE (`core_store`.`store_id`=3) ORDER BY `sort_order` ASC
SELECT `core_store`.* FROM `core_store` WHERE (`core_store`.`store_id`=3) ORDER BY `sort_order` ASC

Core_website tablom aşağıdaki gibi görünüyor:

website_id code           sort_order     default_group_id  is_default
0          admin          0              0                 0
1          working_one    1              1                 1
3          failing_one    2              4                 0
4          working_two    3              9                 0
6          failing_two    4              16                0
7          failing_three  5              15                0
8          failing_four   6              17                0
9          failing_six    7              18                0

working_xxx = bu yükler TAMAM, failing_xxx = bunlar bir 404 / varolmayan bir store_id seçmeye çalışır.

Core_store tablom aşağıdaki gibi görünüyor: (kod + ad alakalı olmadığı için kaldırıldı)

store_id website_id group_id sort_order is_active
0        0          0        0          1
1        1          1        0          1
4        3          4        1          1
5        3          4        2          1
10       4          9        0          1
19       7          15       0          1
20       4          9        1          1
21       4          9        2          1
22       4          9        4          0
23       6          16       1          1
24       6          16       2          1
26       4          9        4          1
28       7          15       0          1
29       1          1        2          1
30       8          17       0          1
31       9          18       0          1
32       9          18       0          1
33       8          17       2          1
34       8          17       3          1
35       8          17       4          1
36       4          9        10         1

Ve bu core_store_group:

group_id website_id name            root_cat_id default_store_id
1        1          working_one     50          1
4        3          failing_one     44          4
9        4          working_one     77          10
15       7          failing_two     70          19
16       6          failing_three   46          23
17       8          failing_four    50          30
18       9          failing_five    96          31

Ben web sitesi / storeview kaldırılmadan ve -bu adı geçen web sitesi / storeview kaldırılması hariç-her şeyi tam olarak aynı görünüyor önce bu üç tablo DB yedek kopyasını karşılaştırdık. Aynı kimlikler, aynı kodlar vb.

Bildiğim kadarıyla bu üç tablo, storegen / web sitesi kodu ve kimlikleri için Magento tarafından kontrol edilen tek tablolardır.

Sorun giderme için aşağıdakileri yaptım: Kaldığı yerlerde eski yapılandırmayla hiçbir önbellek sağlamak için: boşaltma var / önbellek, boşaltılan önbellekler, yeniden dizine ekleme, sunucuyu yeniden başlatma vb.

Tüm php / magento oturum açma, geliştirici modu vb.Ile bile, bunun neden olduğuna dair sıfır ipucu alıyorum. Günlüğe kaydedilmiş istisna yok.

İki soru şu: Magento neden web sitesi kapsamı yerine var olmayan bir mağaza görünümü kapsamı seçmeye çalışıyor ve nasıl düzeltilir?

Güncelleme 1 / Geçici Çözüm

Magento-db onarım aracı dahil, ancak bunlarla sınırlı olmamak üzere uzun bir sorun giderme gününden sonra, tüm orijinal web siteleri ve mağaza görünümleriyle core_store, core_store_group ve core_website tablolarını yeniden oluşturma nihayet aşağıdakileri fark ettim:

Tüm website_idbu yük hassasiyeti store_idiçin aynı numaraya sahip bir a vardır . website_id 1ve 4beklendiği gibi yükleniyor ve gerçekten (alakasız) store_id 1ve 4tanımlanmış.

İçin website_id 3, 6, 7, 8ve 9hiçbir orada store_idaynı numara ile.

Ancak, bir kez ben oluşturulan sahte girmesinden store_idörneğin 3Yapılandırma Kapsamını yüklenirken, website_id 3yeniden çalışmaya başladı.

Şimdi başarılı bir şekilde bir geçici çözüm yerleştirmiş olsa da, bir ekstra (devre dışı) web sitesi ve 5 (devre dışı) mağaza görünümleri ile sona erdi.

Bunun daha önce bir sorun olmadığından emin olmak için, dev sunucumda (magento 1.9.1.0) tuttuğum sitemizin eski kopyalarından birine gittim.

Burada her şey mükemmel, yani çalışan website_id 6bir gerek kalmadan yüklerini store_id 6de core_storemasaya.


Sormak zorundayım, her şeyi değiştirdiğinizde URL dizine eklemeyi kullandınız mı?
Anthony Cicchelli

Hey @ AnthonyCicchelli, sorduğun için teşekkürler. Bu aslında sorunu çözmeye çalıştığım ilk şeylerden biriydi, ama boşuna :(
Ottonet

Birçok faktör olduğu için buradan söylemek zor, tüm URL'nizi DB'den temizlediniz ve URL'yi yeniden çalıştırdınız mı? Sesler bana dayalı olarak bağlanmış. ÇOK Yukarıda DB ile doğrudan çalışmaya özen gösterin. Bir yedeğiniz olduğundan emin olun, aksi takdirde her şeyi bozabilir.
Anthony Cicchelli

Eminim bu bir "ön uç" sorunu (örneğin URL-endeksi), ama daha fazla "arka uç" sorunu, eflatun kodu derin bir yerde. Bana göre Magento belirli bir website_id / store_id dizisini / kombinasyonunu bekliyormuş gibi geliyor.
Mart'ta Ottonet

Yanıtlar:


2

Ben tek web sitesi mağaza benzer bir sorun vardı ve aşağıdaki sorgu ile çözüldü.

SET SQL_SAFE_UPDATES=0;
SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;
SET SQL_SAFE_UPDATES=1;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.