2010-04-16 25 views
13

¿Es seguro para mover mis módulosDrupal - mover la carpeta del módulo

  • Desde sites/all/modules/
  • Para sites/all/modules/contrib y sites/all/modules/encargo

en un centro de producción?

Eso es, ¿Drupal detectar automáticamente que el módulo está todavía allí, pero en un nuevo camino?

Respuesta

3

Si mueve un módulo de Drupal verá que el viejo se rompe, y existe una nueva. No asumirá que los dos son lo mismo, simplemente movido.

+0

gracias, se cerrará si una persona más puede confirmar esto – davidosomething

+2

Si deshabilita el módulo, muévalo, luego vuelva a habilitarlo en la nueva ubicación que debería estar bien. Probablemente mantendrá su configuración. Si simplemente lo arrancas desde debajo de Drupal no le gustará eso. – McAden

+2

Paso 1: Mueva el módulo. Paso 2: borre la caché. Si un módulo permanece roto en este punto, hay un error. – Grayside

2

Drupal almacena la ubicación del archivo en la tabla del sistema, la información se reconstruirá cuando borre la memoria caché del módulo, por lo que si mueve las cosas y borra la caché, estará bien.

+0

¡buena llamada, gracias! – davidosomething

1

Es bueno tener subcarpetas/contrib y/custom para los módulos. Para D7, especialmente si usa entidad, debe desactivar los módulos, moverlos y luego volver a habilitarlos. Funciona.

La alternativa, mover los módulos a las subcarpetas y borrar la memoria caché, a veces no funciona y puede generar WSOD.

20

Las versiones Drupal hasta D6 mantienen la ubicación del módulo en la tabla del sistema, pero a partir de D7 hay múltiples lugares donde se registra la ruta (por ejemplo, registro y tablas de registro_registro), así que mover la carpeta y borrar caché no lo hará. lo más probable es que conduzca a problemas significativos.

Una secuencia de pasos que puede probar:

  1. copia de seguridad de su base de datos
  2. Registro de entrada el código en el control de versiones
  3. Run siguientes consultas:

    sistema de actualización SET archivo = REPLACE (nombre de archivo, 'sites/all/modules', 'sites/all/modules/contrib');

    actualización del registro SET archivo = SUSTITUIR (nombre de archivo, 'sites/all/modules', 'sites/all/modules/contrib');

    ACTUALIZACIÓN registry_file archivo ajustado = Replace (nombre de archivo, 'sites/all/modules', 'sites/all/modules/contrib')

  4. carpetas Mover

  5. Run: drush cc all
+0

cuando (5) da errores (el contexto da errores), intente truncar todas sus tablas% de memoria caché – filsterjisah

0

Puede mover la mayoría de los módulos de forma segura, si borra la caché después (drury cc all).

Sin embargo, algunos módulos, especialmente ctools, información de la ruta del archivo guardar en lugares distintos de la mesa o cachés sistema. Puede que tenga que dejar esos módulos en su ubicación original, pero aún puede mover todo lo demás.

3

La respuesta de irakli funcionó bien para mí, pero quería agregar algo de complejidad adicional a las consultas en caso de que otros las encuentren útiles.

Paso 1 - Actualizar todos los módulos personalizados '' si tienes la suerte de tenerlos que comparten un espacio de nombres:

UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE name LIKE 'custom_namespace_%'; 
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE name LIKE 'custom_namespace_%'; 
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE filename LIKE '%custom_namespace_%'; 

Paso 2 - Actualización de todos los módulos 'dev':

UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE name LIKE 'devel%'; 
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE name LIKE 'devel%'; 
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE filename LIKE '%devel%'; 

paso 3 - Actualizar todos los 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') 

Luego lanzan la totalidad de sus módulos en la apropiada sites/all/modules/contrib|custom|dev carpetas, borre su caché, y listo.

2

Si usted está en D7, entonces esta página de documentación de Drupal es la mejor manera de seguir adelante con módulos de moverse - How to move modules and themes

1

uso http://drupal.org/project/registry_rebuild "regeneración de Registro también reconstruir la tabla de sistema para obtener los módulos de la el lugar correcto para que pueda arrancar ".

  • copia de seguridad de la base de datos
  • subido su 'módulo'
  • movido todos los módulos
  • ejecutar el script de sitios/all/modules/registry_rebuild/registry_rebuild.php
  • recargar el sitio
  • si obtiene un error, borre la caché del navegador y todo vuelva a funcionar
1

En realidad sólo tiene que hacer la actualización en la tabla del sistema y luego haga lo siguiente:

rr drush

y tal vez ..

drush cc toda

drush rr

+0

sí - esta es la respuesta de 2015 a esta pregunta – ErichBSchulz

Cuestiones relacionadas