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 .code
core_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 storeview
bunun 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_id
bu yük hassasiyeti store_id
için aynı numaraya sahip bir a vardır . website_id
1
ve 4
beklendiği gibi yükleniyor ve gerçekten (alakasız) store_id
1
ve 4
tanımlanmış.
İçin website_id
3
, 6
, 7
, 8
ve 9
hiçbir orada store_id
aynı numara ile.
Ancak, bir kez ben oluşturulan sahte girmesinden store_id
örneğin 3
Yapılandırma Kapsamını yüklenirken, website_id
3
yeniden ç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
6
bir gerek kalmadan yüklerini store_id
6
de core_store
masaya.