Eu restaurei um backup da produção localmente e tentei apenas mover as coisas e pressionar admin / modules ou executar o registry_rebuild (), mas isso não impediu que erros fatais fossem lançados. Isso faz sentido para mim, já que alguns módulos podem usar include ou o que quer que seja em seu hook_init (), ou você pode ter um caminho de roteador de menu definido que depende de um módulo ou que o Drupal não pode encontrar no bootstrap. Por fim, foi o que eu fiz (seus caminhos podem ser diferentes):
Etapa 1: Substitua sites / all / modules por sites / all / modules / 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');
Etapa 2: Substitua sites / all / modules / contrib por sites / all / modules / custom para módulos personalizados no namespace
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_%';
Etapa 3: Mova os módulos de desenvolvimento para sites / 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%';
Etapa 4: limpe os caches para que as coisas sejam inicializadas corretamente
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Nota: Se você usar um módulo personalizado ou um contrib como o LoginToboggan para manipular 403 (acesso negado) e você for desconectado durante esse processo, talvez seja necessário atualizar a include_file
coluna na menu_roter
tabela para usar o novo caminho para o arquivo de inclusão . Provavelmente é uma ocorrência rara.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Depois que essas consultas forem executadas - o que levará apenas uma fração de segundo -, pressione admin / config / development / performance e limpe o cache para que os caminhos do menu sejam reconstruídos.
registry_file
tabela, o que forçará o drupal a verificar novamente todos os arquivos e reconstruir a tabela.