Implementación de Drupal: ¿cómo manejar la database?

Pasé dos días leyendo preguntas sobre SO, publicaciones de blogs, foros, etc.

La mayor parte de esa información, es vieja.

Estoy construyendo un sitio en mi cuadro de Ubuntu usando Drupal 7 (con Drush) y GitHub para el alojamiento de repositorys. Tengo acceso SSH al server de producción.

Después de entregar la primera versión del sitio, voy a tener que agregar funciones y corregir errores.

Un amigo me dijo que almacenara mi file SQL en el repository e ir desde allí.

Mi pregunta es: ¿cuál es el mejor enfoque? ¿Hay alguna buena práctica que aconseje sobre esto?

¡Gracias!

No soy un experto de Drupal, pero en general las implementaciones de bases de datos son complicadas, especialmente si terminas en entornos de testing y testing porque los cambios terminan necesitando orderarse. Recomiendo usar algún tipo de "secuencia de commands principal" que ejecute las actualizaciones de la database que necesita. Envolvemos el nuestro con consultas que preguntan a la database en qué versión estás y aplica solo nuevas actualizaciones SQL.

La implementación en Drupal es un tema complejo, porque Drupal en sí mismo no tiene una buena respuesta para el tema general de administración de configuration. Una importante iniciativa ha logrado un progreso significativo para que Drupal 8 llegue allí, pero por ahora, nos ocupamos de la incomodidad del contenido y la configuration, ambos almacenados en la database.

Como mínimo, necesitará el volcado de la database para el contenido. A partir de ahí, se convierte en una serie completa de ensayos potenciales. Solo para tocar algunos:

  • Usar ganchos de actualización en un module para administrar los cambios en la database como parte de su flujo de trabajo de implementación.
  • Utilizando el enfoque de exportables / todo en el código, en el que los bits del tipo de configuration de la database se exportan como código PHP como parte de los modules personalizados del sitio. Demasiadas maneras diferentes de hacer esto para que encuentre una buena página para enlazar, pero usamos el module de Características .
  • Utilizando drush como un contenedor alnetworkingedor de rsync para que pueda administrar implementaciones y transferencias de datos usando herramientas como alias del sitio. Drush es una herramienta increíble, solo sigue profundizando en ella.

Puede volcar su SQL en el repository, pero no lo consideramos necesario ya que toda la configuration que nos importa se exporta a código. Entonces, el volcado de SQL realmente equivale a una copy de security.