#05Intermediate5 min

Gerando Migrações

Crie um checkpoint do seu schema, faça alterações e gere arquivos de migração SQL que capturam exatamente o que mudou.

Neste guia

  1. 1Abra o modal de Checkpoints
  2. 2Crie um checkpoint (linha de base)
  3. 3Faça alterações no schema
  4. 4Gere a migração
  5. 5Escolha seu framework e exporte

Como as migrações funcionam no ER Flow

O ER Flow gera migrações comparando dois snapshots do schema: a linha de base (seu checkpoint) e o estado atual. Ele detecta cada alteração — novas tabelas, tabelas removidas, tabelas renomeadas, colunas adicionadas, colunas modificadas, novos índices, novas chaves estrangeiras — e gera o código de migração SQL correspondente.

Dois geradores de migração são suportados atualmente: Laravel (PHP) e Phinx (PHP). Cada um gera código de migração específico para o framework com métodos up() e down().

Passo 1: Abra o modal de Checkpoints

Na barra de ferramentas, clique no ícone de Bandeira (Checkpoints). Isso abre o modal de Checkpoints onde você pode gerenciar seus checkpoints de schema e gerar migrações.

Passo 2: Crie um checkpoint (linha de base)

Clique em "Criar Checkpoint" e dê um nome a ele (por exemplo, "Schema inicial", "v1.0", "Antes do refactor de usuários"). Opcionalmente adicione uma descrição.

Um checkpoint captura um snapshot completo do seu schema atual — todas as tabelas, colunas, índices, chaves estrangeiras, triggers e procedures. Esse snapshot é armazenado no servidor e serve como linha de base para diffs futuros.

Você deve criar um checkpoint:

  • Antes de começar uma nova funcionalidade ou refactor
  • Depois de aplicar uma migração em produção (para marcar o estado atual)
  • Em qualquer ponto em que você queira um "ponto de salvamento" para comparar

Passo 3: Faça alterações no schema

Com seu checkpoint salvo, faça as alterações necessárias:

  • Adicione novas tabelas e colunas
  • Renomeie tabelas ou colunas
  • Altere tipos de coluna, valores padrão ou restrições
  • Adicione ou remova índices
  • Crie ou exclua chaves estrangeiras
  • Adicione triggers ou procedures

Cada alteração é rastreada. Quando você gerar uma migração, o ER Flow comparará seu schema atual com o checkpoint e detectará todas as diferenças.

Passo 4: Gere a migração

Volte ao modal de Checkpoints e selecione o checkpoint contra o qual deseja fazer o diff. Clique em "Gerar Migração". O ER Flow executa o motor de diff e exibe:

Painel esquerdo — Alterações Detectadas: - Um resumo de todas as operações (tabelas criadas, colunas adicionadas, índices modificados, etc.) - Uma lista detalhada de cada operação individual - Avisos para possíveis problemas (por exemplo, remover uma coluna com dados)

Painel direito — Código Gerado: - O código de migração up() (o que executar para avançar) - O código de migração down() (como fazer rollback)

O motor de diff detecta estes tipos de operação: table.create, table.drop, table.rename, column.add, column.drop, column.rename, column.modify, index.add, index.drop, fk.add, fk.drop, pk.set.

Passo 5: Escolha seu framework e exporte

Na parte inferior do modal de migração, você pode alternar entre geradores:

Laravel: Gera uma classe de migração padrão do Laravel com Schema::create(), Schema::table(), $table->string(), $table->foreign(), etc. Inclui métodos up() e down().

Phinx: Gera uma classe de migração do Phinx com $this->table(), ->addColumn(), ->addIndex(), ->addForeignKey(), etc.

Você pode:

  • Copiar para a área de transferência — cole diretamente no seu código-fonte
  • Baixar — salva como arquivo .php com um nome gerado
  • Aplicar — marca o schema atual como a nova linha de base (atualiza o checkpoint), de modo que a próxima migração capture apenas as alterações a partir deste ponto

Após baixar ou copiar a migração, adicione-a ao diretório de migrações do seu projeto e execute-a com o comando de migração do seu framework (por exemplo, php artisan migrate para o Laravel).