Eu tinha um site grande que falhava repetidamente ao iniciar. É uma instalação de 2 contêineres, então o contêiner antigo continuava rodando enquanto a inicialização realizava a migração. Acabei resolvendo o problema ativando SKIP_POST_DEPLOYMENT_MIGRATIONS=1 para a inicialização e, em seguida, executando as migrações após o novo contêiner ser iniciado. Com SKIP_POST_DEPLOYMENT_MIGRATIONS=1 na seção ENV, a migração foi muito rápida, e o site pôde funcionar normalmente (embora talvez um pouco mais lentamente) enquanto as migrações ocorriam, o que levou, acho eu, mais de 20 minutos.
Acredito, embora ainda não tenha testado, que usar o mesmo truque funcionaria para minimizar o tempo de inatividade durante uma instalação de único contêiner. Se eu estiver certo, o que você faria seria:
- adicionar
SKIP_POST_DEPLOYMENT_MIGRATIONS=1ao seuapp.yml - ./launcher rebuild app
- ./launcher enter app
- SKIP_POST_DEPLOYMENT_MIGRATIONS=0 rake db:migrate
- desfazer a edição no
app.yml, a menos que planeje lembrar de executar as migrações após cada atualização - talvez reconstruir novamente para garantir que você não tenha nenhum problema enquanto ainda se lembra do que poderia ter quebrado seu site, pois, daqui a 4 meses, quando tentar novamente, não fará ideia e será difícil para qualquer um adivinhar qual poderia ser o problema
Se houvesse uma maneira de o ./launcher passar SKIP_POST_DEPLOYMENT_MIGRATIONS=1 para as coisas sem exigir uma edição no app.yml, tornaria as coisas menos complicadas para quem tem dificuldade com edição.
Se eu conseguir realizar o trabalho sobre isso que acredito que farei, criarei um novo tópico relatando o que descobri. Embora a fumaça me tenha confinado a um quarto onde não tenho meu monitor grande. (A pandemia não foi suficiente?! Temos que ter fumaça também? E eu nem estou especialmente perto do maldito incêndio.)