Restablecí una copia de seguridad de la producción local e intenté simplemente mover cosas y presionar admin / modules o ejecutar register_rebuild () pero no impidió que se produjeran errores fatales. Esto tiene sentido para mí, ya que algunos módulos pueden usar incluir o lo que sea en su hook_init (), o puede tener una ruta de enrutador de menú establecida que depende de un módulo o incluir que Drupal no puede encontrar en bootstrap. En última instancia, esto es lo que hice (tus caminos pueden ser diferentes):
Paso 1: Reemplazar sitios / todos / módulos con sitios / todos / módulos / 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');
Paso 2: Reemplace sites / all / modules / contrib con sites / all / modules / custom por módulos de espacios de nombres personalizados
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_%';
Paso 3: Mueva los módulos de desarrollo a sitios / todos / módulos / 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%';
Paso 4: borra los cachés para que las cosas arranquen correctamente
TRUNCATE TABLE cache
TRUNCATE TABLE cache_bootstrap
TRUNCATE TABLE cache_menu
TRUNCATE TABLE cache_page
TRUNCATE TABLE cache_path
Nota: Si usa un módulo personalizado o una contribución como LoginToboggan para manejar 403 (acceso denegado) y ha cerrado la sesión durante este proceso, es posible que deba actualizar la include_file
columna en la menu_roter
tabla para usar la nueva ruta para el archivo de inclusión . Esto es probablemente una ocurrencia rara.
UPDATE menu_router SET include_file = 'sites/all/modules/custom/my_custom_namespace/includes/foo.inc' WHERE path = 'access-denied'
Una vez que se hayan ejecutado estas consultas, lo que solo tomará una fracción de segundo, presione admin / config / development / performance y borre la memoria caché para que se reconstruyan las rutas del menú.
registry_file
tabla, lo que obligará a drupal a volver a escanear todos los archivos y reconstruir la tabla.