Yerel olarak üretimdeki bir yedeği geri yükledim ve sadece bir şeyleri taşımaya ve admin / modüllerine basmaya ya da registry_rebuild () komutunu çalıştırmaya çalıştım, ancak ölümcül hataların atılmasını engellemedi. Bazı modüller, hook_init () 'in içerdiği veya içerdiği herhangi bir şeyi kullanabileceğinden veya Drupal’ın önyükleme sırasında bulamadığı bir menü yönlendirici yoluna sahip olabileceğiniz için bu bana mantıklı geliyor. Sonuçta, yaptığım şey buydu (yollarınız farklı olabilir):
Adım 1: Siteleri / tümünü / modüllerini siteleri / tümü / modülleri / katkı ile değiştirin
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
Adım 2: Özel ad alanlı modüller için siteleri / tümü / modülleri değiştirin / siteler / tümü / modülleri / özel alanlarına katkıda bulunun
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE name LIKE 'my_custom_namespace_%';
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE name LIKE 'my_custom_namespace_%';
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/custom') WHERE filename LIKE '%my_custom_namespace_%';
Adım 3: dev modüllerini sitelere / all / module / dev'e taşıyın
UPDATE system SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE name LIKE 'devel%';
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE name LIKE 'devel%';
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules/contrib', 'sites/all/modules/dev') WHERE filename LIKE '%devel%';
Adım 4: Önbellekleri temizleyin, böylece işler düzgün şekilde önyüklenir
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Not: Özel bir modül veya 403'ü (erişim reddedildi) işlemek için LoginToboggan gibi bir katkı kullanıyorsanız ve bu işlem sırasında oturumunuzu kapattıysanız , içerme dosyası için yeni yolu kullanmak için tablodaki include_file
sütunu güncellemeniz gerekebilir. menu_roter
. Bu muhtemelen nadir bir durumdur.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Bu sorgular çalıştırıldıktan sonra - yalnızca bir saniye sürecek - admin / config / development / performance komutunu açın ve önbelleği temizleyin, böylece menü yolları yeniden oluşturulur.
registry_file
tablonuzu da kesebilirsiniz, tüm dosyaları yeniden taramak ve tabloyu yeniden oluşturmak için drupal'ı zorlar.