tengo un pipeline de “migración continua” de hombre pobre. es un montón de scripts de shell para hacer tareas como:
- extraer la base de datos de phpbb, archivos adjuntos, etc. del servidor remoto
- crear/administrar instancias de discourse
- se aplican
site_settings específicos cuando se crea una instancia de discourse a partir de una instancia de plantilla
- hacer copias de seguridad/restaurarlas
- ejecutar la migración con un conjunto específico de scripts de importación de un repositorio de git
- hacer tareas posteriores a la migración
básicamente, esto me permite trabajar en una instancia de discourse dctemplate pre-migración con la que juego. sigo ajustando la configuración de discourse a mi gusto.
por la noche, extraigo de la phpbb en vivo existente y hago una nueva migración en una nueva instancia de discourse (dcstaging) recién creada a partir de la plantilla más reciente.
hacer esto lleva horas, por supuesto, así que también tengo una phpbb local en ejecución con una base de datos muy pequeña que uso para hacer pruebas y mejorar los scripts de migración. puedo hacer migraciones relativamente rápidas para probar en otra instancia de discourse (dcdev).
así que el flujo de trabajo de prueba durante el día es como
hice algo de trabajo en la plantilla, me gusta dónde estoy:
./dc_template_create.sh dctemplate
ups, cometí un error en mi plantilla. restáurala al estado anterior:
./dc_template_restore.sh dctemplate
hago una migración rápida para probar algunas cosas
# crea una nueva instancia dcdev de dctemplate (y aplica site_settings específicos a dcdev)
./dc_template_restore.sh dcdev dctemplate
./dc_migrate.sh dcdev # se ejecuta con el repositorio de script de migración específico para esa instancia
hago una migración larga durante la noche desde la phpbb real y en vivo:
./dc_template_create.sh dctemplate
./dc_template_restore.sh dcstaging dctemplate
./phpbb_pull.sh
./dc_migrate.sh dcstaging
sleep 300
./dc_rake.sh dcstaging # tareas adicionales posteriores a la migración no manejadas por el importador para (crear moderadores, etiquetado detallado, mover algunos temas, etc.)
si a alguien le interesa lo suficiente, podría limpiarlo un poco y compartirlo.