Digite para filtrar os verbetes do Glossário.

    Banco de dados · Formação DevOps

    O que é Migration?

    Migration registra alterações do banco em arquivos versionáveis. Entenda aplicação, compatibilidade e limites da reversão sobre registros existentes.

    Também chamado de: migração de esquema, migração de estrutura, schema migration

    Registrar a evolução do banco

    Migration é uma alteração do banco descrita em um arquivo que pode ser versionado e executado por uma ferramenta. Ela pode criar uma tabela, acrescentar uma coluna ou modificar uma restrição. Algumas migrations também transformam registros para acompanhar a evolução da estrutura.

    O projeto mantém uma sequência dessas alterações, e a ferramenta registra quais já foram aplicadas em cada ambiente. Quando você recebe o código, pode executar as etapas pendentes sem reproduzir manualmente cada ajuste. O resultado ainda depende das condições do banco e de eventuais alterações feitas fora desse histórico.

    Imagine uma atualização que acrescenta a data de nascimento ao cadastro. A migration cria a coluna, e a nova versão da aplicação lê e escreve esse campo. As duas mudanças precisam ser coordenadas para que o código publicado encontre a estrutura esperada.

    Uma alteração com efeito definido

    Exemplo de alteração que pode compor uma migrationsql
    ALTER TABLE contatos
    ADD COLUMN data_nascimento DATE;

    O comando pressupõe a existência da tabela e a ausência da coluna. Uma ferramenta de migrations pode executar esse SQL diretamente ou produzir uma instrução equivalente a partir da linguagem do framework. O arquivo e o registro de execução acrescentam organização à alteração.

    A coluna do exemplo permite nulo, o que acomoda cadastros anteriores sem data informada. Torná-la obrigatória exigiria considerar os valores existentes. Criar uma exigência que nenhuma linha antiga atende pode fazer a execução falhar.

    Aplicar em um banco existente é um teste próprio

    Executar toda a sequência em um banco vazio confere a instalação inicial. Atualizar um banco já utilizado confere outra situação, com registros e restrições existentes. As duas verificações podem encontrar falhas diferentes.

    Considere também o intervalo entre a alteração do banco e a atualização de todos os processos. Se a versão anterior ainda atender requisições, teste seu comportamento com a nova estrutura. O teste da versão nova, sozinho, não cobre essa convivência temporária.

    O tempo de execução e a interferência em consultas também dependem do banco, do volume e da operação. Uma alteração rápida em poucas linhas pode exigir mais trabalho em uma tabela grande. Consulte o comportamento do comando no banco utilizado e prepare o procedimento de aplicação.

    Reversão não recupera conteúdo automaticamente

    Uma migration pode oferecer uma operação inversa, mas desfazer a estrutura não equivale a recuperar tudo. Remover uma coluna elimina seus valores, e recriá-la depois não os restaura. Backup e procedimentos de recuperação têm uma finalidade distinta.

    Também é preciso coordenar a versão da aplicação. Voltar o banco a uma estrutura que o código atual não reconhece pode impedir o funcionamento. Uma migration corretiva pode preservar os valores da coluna que uma inversão destrutiva apagaria.

    Como conferir o histórico

    Compare migrations aplicadas, estrutura real e versão do código. Teste a instalação inicial e a atualização de um conjunto representativo em desenvolvimento. Não altere silenciosamente uma migration já compartilhada esperando que todos os ambientes a executem novamente.

    O verbete de seed explica como preparar registros de partida depois que a estrutura necessária está disponível.

    Dúvidas frequentes

    Perguntas frequentes sobre Migration

    Migration altera apenas a estrutura?
    Muitas migrations alteram tabelas e restrições, mas também podem transformar registros. O arquivo deve deixar explícito o efeito pretendido e suas condições de execução.
    Aplicar em um banco vazio basta para testar?
    A instalação inicial não cobre todas as condições de um banco já utilizado. Teste também a atualização com registros representativos e restrições existentes.
    Reverter uma migration recupera valores removidos?
    Recriar uma coluna não recupera automaticamente seu conteúdo anterior. Alterações destrutivas exigem procedimentos próprios de recuperação.
    Posso editar uma migration já aplicada para corrigir todos os ambientes?
    A ferramenta pode considerá-la concluída e não executá-la novamente. Uma mudança compartilhada normalmente precisa de uma nova etapa que mantenha o histórico coerente.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    Migrations registram alterações do banco que precisam ser aplicadas de forma coordenada nos ambientes do projeto.

    Conhecer a formação
    Capa da Formação DevOps

    Fontes consultadas

    Referências deste verbete

    Este verbete ajudou você?

    Planos Promovaweb

    Tire seus projetos do papel

    O Plano Martech cobre automação e atendimento. O Plano IA Makers acrescenta desenvolvimento com IA, enquanto o Plano Founders trata de gestão de negócios. Todos são anuais.

    Plano Martech

    Para conectar automação, marketing e atendimento com infraestrutura própria.

    R$ 897

    R$ 597/ano

    • Grade de automação, atendimento, marketing e análise de indicadores
    • Instalador Exclusivo Promovaweb
    • n8n, Evolution API, Chatwoot e Mautic
    • Trilha DevOps incluída
    • Encontros ao vivo (terça e quinta)
    • Comunidade e acompanhamento
    Conhecer o plano

    Plano Founders

    Plano anual para fazer um projeto de tecnologia avançar, com 90 dias de mentoria intensiva. R$ 1.997 à vista ou até 10x de R$ 219 no cartão.

    R$ 1.997/ano

    • 12 meses de acesso ao Founders
    • 90 dias de mentoria intensiva, um encontro por dia útil
    • Dia de conteúdo (terça e quinta) e War Room (segunda, quarta e sexta)
    • Encontro semanal em grupo após a fase intensiva
    • Formação Vibe Coding incluída no plano anual
    • Consultoria individual de até duas horas (bônus)
    Conhecer o plano