tenho um pipeline de “migração contínua” improvisado. é um monte de scripts shell para fazer tarefas como:
- puxar banco de dados phpbb, anexos, etc do servidor remoto
- criar/gerenciar instâncias do discourse
site_settings específicos são aplicados quando uma instância do discourse é criada a partir de uma instância modelo
- fazer backup/restaurar elas
- executar a migração com um conjunto específico de scripts de importação de um repositório git
- fazer tarefas pós-migração
basicamente, isso me permite trabalhar em uma instância do discourse pré-migração (dctemplate) com a qual eu brinco. continuo ajustando as configurações do discourse ao meu gosto.
diariamente, eu puxo do phpbb ativo existente e faço uma nova migração em uma nova instância do discourse (dcstaging) recém-criada a partir do modelo mais recente.
fazer isso leva horas, é claro, então também tenho um phpbb local rodando com um banco de dados muito pequeno que uso para fazer testes e melhorar os scripts de migração. posso fazer migrações relativamente rápidas para testar em outra instância do discourse (dcdev).
então, o fluxo de trabalho de teste durante o dia é como:
fiz algum trabalho no modelo, gosto de onde estou:
./dc_template_create.sh dctemplate
ops, cometi um erro no meu modelo. restaure-o para o estado anterior:
./dc_template_restore.sh dctemplate
faça uma migração rápida para testar algumas coisas:
# cria uma nova instância dcdev a partir de dctemplate (e aplica site_settings específicos a dcdev)
./dc_template_restore.sh dcdev dctemplate
./dc_migrate.sh dcdev # executa com o repositório de script de migração específico para essa instância
faça uma migração longa durante a noite a partir do phpbb real e ativo:
./dc_template_create.sh dctemplate
./dc_template_restore.sh dcstaging dctemplate
./phpbb_pull.sh
./dc_migrate.sh dcstaging
sleep 300
./dc_rake.sh dcstaging # tarefas extras pós-migração não tratadas pelo importador para (criar moderadores, marcação detalhada, mover alguns tópicos, etc.)
se alguém estiver interessado o suficiente, eu poderia limpá-lo um pouco e compartilhá-lo.