Я відновив резервну копію з виробництва локально і спробував просто перемістити речі і натиснути адміністратор / модулі або запустити register_rebuild (), але це не зупинило відкидання фатальних помилок. Це має сенс для мене, оскільки деякі модулі можуть використовувати включені або що-небудь у їхньому_ук_ініт (), або у вас може бути встановлений шлях маршрутизатора до меню, який залежить від модуля, або включати те, що Drupal не може знайти під час завантаження. Зрештою, це я зробив (ваші шляхи можуть бути різними):
Крок 1: Замініть сайти / всі / модулі сайтами / усі / модулі / внесок
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');
Крок 2: Замініть сайти / всі / модулі / допишіть сайти / всі / модулі / власні для модулів, розміщених назви
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_%';
Крок 3: Перемістіть модулі розробки на сайти / all / module / 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%';
Крок 4: Очистіть кеші, щоб речі завантажилися належним чином
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Примітка: Якщо для обробки 403 (доступ заборонено) ви користуєтеся спеціальним модулем або дописом, таким як LoginToboggan, і ви вийшли з системи, під час цього процесу вам може знадобитися оновити include_file
стовпець у menu_roter
таблиці, щоб використовувати новий шлях для файлу включення . Це, мабуть, рідкісне явище.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Після запуску цих запитів - що займе лише частку секунди - натисніть адміністратор / config / development / performance та очистіть кеш, щоб шляхи меню відновилися.
registry_file
таблицю, що змусить drupal перевмістити всі файли та відновити таблицю.