Migracoes: `migrate`, `upgrade`, `migrate-source`
Tres comandos distintos, tres coisas distintas. A confusao entre eles custa tempo, entao a tabela vem primeiro:
| Comando | Migra o que | Alvo |
|---|---|---|
| `upgrade` | O .deploy.yml de um esquema antigo para o atual |
Um diretorio de projeto |
| `migrate` | O layout em disco da app (v0.5.0) | Uma app registrada |
| `migrate-source` | source: {type: dist} para a branch real |
Uma app, ou todas |
`runner upgrade`
Converte um .deploy.yml de esquema legado para o formato atual (v1.0.0).
runner upgrade --path /caminho/do/projeto| Flag | Obrigatorio | Descricao |
|---|---|---|
-p, --path <PATH> |
Sim | Diretorio do projeto que contem o .deploy.yml |
`runner migrate`
Migra uma app de um layout antigo do runner para o esquema atual em disco (v0.5.0).
runner migrate --app /apps/app_hogi_com_br| Flag | Obrigatorio | Descricao |
|---|---|---|
-a, --app <APP> |
Sim | Caminho da aplicacao |
`runner migrate-source`
Migra source: {type: dist} para type: branch com a branch real (issue #78).
O ponto do comando esta em como ele descobre a branch: ela vem do dist_branch do
state, nunca de um chute. Em producao, 7 das 60 apps com type: dist rastreiam
main — sao os repos de conteudo — e nao dist. Um migrador que assumisse dist para
todas teria apontado essas sete para uma branch que nao existe.
runner migrate-source --dry-run # plano, sem escrever nada
runner migrate-source # aplica em todas
runner migrate-source --app minha-app # uma so| Flag | Descricao |
|---|---|
--app <APP> |
Restringe a uma app. Sem ela, opera em todas |
--dry-run |
Mostra o plano sem escrever nada |
--commit |
Commita o manifesto alterado no clone |
--push |
Empurra o commit para o repo |
-o, --output |
human | json | yaml |
O que ele deixa para voce
Por padrao ele edita o manifesto no clone git e para ali — o resultado fica como
diff, para voce revisar e commitar. Um backup .yml.bak fica ao lado do original.
Comece sempre pelo --dry-run.