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.

Ver tambem

By Borlot.com.br on 19/08/2026