Lokalnie przywróciłem kopię zapasową z produkcji i próbowałem po prostu przenieść rzeczy i uderzyć admin / moduły lub uruchomić register_rebuild (), ale nie powstrzymało to zgubnych błędów. Ma to dla mnie sens, ponieważ niektóre moduły mogą korzystać z funkcji include lub cokolwiek w ich funkcji hook_init (), lub możesz mieć zestaw ścieżek routera menu, który zależy od modułu lub włączenia, którego Drupal nie może znaleźć na bootstrapie. Ostatecznie to właśnie zrobiłem (twoje ścieżki mogą być inne):
Krok 1: Zamień strony / wszystkie / moduły na witryny / wszystkie / moduły / contrib
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');
Krok 2: Zamień strony / wszystkie / moduły / contrib na witryny / wszystkie / moduły / niestandardowe dla niestandardowych modułów z przestrzenią nazw
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_%';
Krok 3: Przenieś moduły deweloperskie na strony / all / modules / dev
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%';
Krok 4: Wyczyść pamięć podręczną, aby elementy poprawnie się ładowały
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Uwaga: Jeśli używasz niestandardowego modułu lub wkładu, takiego jak LoginToboggan do obsługi 403 (odmowa dostępu) i wylogowałeś się podczas tego procesu, może być konieczne zaktualizowanie include_file
kolumny w menu_roter
tabeli, aby użyć nowej ścieżki do pliku dołączania . Jest to prawdopodobnie rzadkie zjawisko.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Po uruchomieniu tych zapytań - co zajmie tylko ułamek sekundy - kliknij admin / config / development / performance i wyczyść pamięć podręczną, aby odbudować ścieżki menu.
registry_file
stół, co zmusi Drupala do ponownego przeskanowania wszystkich plików i przebudowania stołu.