Ho ripristinato un backup dalla produzione localmente e ho provato a spostare le cose e colpire admin / module o eseguire register_rebuild () ma non ha impedito il lancio di errori fatali. Questo ha senso per me dato che alcuni moduli possono usare include o qualunque cosa nel loro hook_init (), oppure potresti avere un set di percorsi del router del menu che dipende da un modulo o includere che Drupal non riesce a trovare su bootstrap. In definitiva, questo è quello che ho fatto (i tuoi percorsi potrebbero essere diversi):
Passaggio 1: sostituire siti / tutti / moduli con siti / tutti / moduli / 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');
Passaggio 2: Sostituisci siti / tutti / moduli / contrib con siti / tutti / moduli / personalizzati per moduli personalizzati con spazio dei nomi
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_%';
Passaggio 3: spostare i moduli dev in siti / 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%';
Passaggio 4: svuota le cache in modo che le cose si avviino correttamente
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Nota: se si utilizza un modulo personalizzato o un contributo come LoginToboggan per gestire 403 (accesso negato) e si è disconnessi durante questo processo, potrebbe essere necessario aggiornare la include_file
colonna nella menu_roter
tabella per utilizzare il nuovo percorso per il file include . Questo è probabilmente un evento raro.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Una volta eseguite queste query, che richiederanno solo una frazione di secondo, accedete a admin / config / development / performance e svuotano la cache in modo da ricostruire i percorsi dei menu.
registry_file
tabella, il che costringerà Drupal a ripetere la scansione di tutti i file e ricostruire la tabella.