quick installing how guide svn drupal

svn - installing - install drupal 8



¿Estrategias de despliegue de Drupal DATABASE? (4)

De este artículo: ¿Cuál es la mejor estrategia de implementación de Drupal? .... Yo cito:

Las bases de datos son más complicadas; limpiar el DB dev / staging y ponerlo a vivir es más fácil para el lanzamiento inicial, pero hay algunas arrugas al hacer actualizaciones incrementales de DB si los usuarios en el sitio en vivo también están generando contenido.

Quiero algunas ideas sobre cómo hacer esto? Actualmente obtengo una copia completa de la base de datos existente en mi máquina local, confirmo esa subversión y luego despliegue toda la base de datos. Actualmente el archivo es de 15 megas, y cada vez tengo que cargar todo el archivo (creo que subversion lo ve como un archivo completamente nuevo, porque tiene tantos cambios cada vez).

Entonces, mis preguntas son realmente:

  1. ¿Cómo puedo obtener mi tamaño de Db cuando estoy cometiendo (además de comprometerme con menos frecuencia)?
  2. ¿Hay alguna otra forma de mantener mi base de datos y servidor DB sincronizados? especialmente teniendo en cuenta que los usuarios publicarán nuevos datos todo el tiempo?

¿Hay alguna otra forma de mantener mi base de datos y servidor DB sincronizados? especialmente teniendo en cuenta que los usuarios publicarán nuevos datos todo el tiempo?

Tenemos un gran equipo distribuido y personal editorial en todas partes, por lo que no es posible implementar la base de datos.

Para evitar esto, hacemos un uso extensivo de las funciones de actualización. Tenemos un módulo que no tiene un código real, que usamos para actualizar la configuración. Cada vez que un desarrollador realiza un cambio de configuración, escribe una función de actualización en este módulo que, cuando se ejecute, realizará el cambio correspondiente en los otros DB de desarrollo, en etapas y en vivo.

Existen problemas, particularmente con las dependencias cruzadas (si las personas escriben funciones de actualización en más de un módulo), y puede tomar tiempo codificar algo que es un cambio relativamente menor en el administrador. Instalar api de perfil ayuda en esto.

Por ejemplo

function mysite_update_6000() { install_include(array(''user'')); $editor_rid = install_add_role(''editor''); install_add_permissions(DRUPAL_ANONYMOUS_RID, array(''do something'')); install_add_permissions($editor_rid, array(''do something'', ''administer nodes'')); return array(); }

Agregará un rol y le asignará algunos permisos. Al hacerlo, mantiene todos los cambios en el código para que no tenga que intentar migrar y sincronizar las bases de datos.

También hay un módulo de migración que puede ayudar con esto, registra los cambios en las tablas y los guarda en una función de actualización. Esto no debe confundirse con el módulo migrate drupal.org que es para la migración de contenido.

Hemos tenido cierto éxito, pero también algunos problemas con el módulo de características , que puede ayudar con la migración de funciones.


Henrik y Jeremy han dado excelentes respuestas sobre el estado de implementación. También he oído que Capistrano (ruby) está siendo usado con buenos resultados. El Estudio de caso de DrupalCampLA describe el mecanismo de implementación que utilizaron (incluido Capistrano) y se dice que el paquete de descarga incluye sus secuencias de comandos de implementación.

Si desea minimizar el tamaño de los volcados de su base de datos, asegúrese de adaptarlo para excluir las tablas de caché y vigilancia. La interfaz de usuario de Copia de seguridad y Migrar muestra de forma predeterminada qué tablas cree que vale la pena ignorar.


Para proyectos más pequeños, seguimos haciendo algo similar a su procedimiento actual, ya que bloqueamos la instancia en vivo para que solo se lea bloqueando a todos los usuarios con derechos de edición, volcamos la base de datos, la cargamos a una instancia de escenario, realizamos todas las actualizaciones que necesitamos y una vez satisfechos con los resultados, cambiamos la instancia de escenario para convertirnos en la próxima versión en vivo. Pero incluso para casos pequeños, esto es doloroso y está lejos de ser una buena solución.

En dos proyectos más grandes, estamos en el mismo barco que Jeremy porque toda la configuración es compleja para implementar volcados de bases de datos completos, especialmente porque no podemos permitirnos bloquear las instancias para que solo se lea el modo solo para algunas actualizaciones.

Para aquellos, hemos utilizado migraña hasta cierto punto (consulte también esta discusión relacionada ). No es un módulo de Drupal sino un script de Python que adaptamos un poco a nuestras necesidades. Su objetivo es crear vertederos algo estructurados, separando el contenido suministrado por el usuario de la configuración y otras cosas, lo que permite una actualización más selectiva y estrategias de transición. Pero dada la estructura de la base de datos Drupal más o menos caótica (especialmente la falta de aplicación de integridad referencial), el uso de este enfoque requiere un ajuste constante al agregar nuevos módulos y es bastante arriesgado, ya que uno necesita asegurarse de volcar / actualizar solo conjuntos coherentes de mesas.

Intentamos minimizar la necesidad de operaciones de volcado / actualización ''al por mayor'' mediante el uso de las funciones de actualización de nuestros módulos personalizados y me gusta la sugerencia de Jeremy Frenchs de agregar un módulo ''ficticio'' solo para poder agregar funciones de actualización para otras configuraciones.

Con todo, actualizar / migrar instancias de Drupal es un gran problema en este momento y espero que haya una solución más coherente en las versiones futuras, aunque puedo ver que es difícil dar un enfoque generalizado dado el esquema de la base de datos actual y la cantidad de módulos personalizados con adiciones individuales por ahí: /

PD: Copia de seguridad y migración es un módulo de Drupal que parece tener un enfoque similar al del script Migraine, pero aún no lo he usado.


La mejor manera de hacerlo es mantener todos los cambios en el código y usar herramientas como el módulo de características para impulsar los cambios a la puesta en escena y / o producción.

Es más trabajo mientras se desarrolla, eso es un hecho, pero si trabajas junto con un grupo de personas que tienen su propia base de datos o si deseas impulsar fácilmente los cambios en la producción, las características son definitivas. el camino a seguir.