Migrations com Phinx: versionamento de banco sem dor
PHP & Backend

Migrations com Phinx: versionamento de banco sem dor

6 min de leitura

Phinx é a alternativa leve ao Eloquent Migrations. Controle total do SQL, suporte a rollback e integração simples com qualquer projeto PHP.

O que é Phinx?

Phinx é uma biblioteca de migrations independente de framework. Diferente do Artisan do Laravel, ele não pressupõe nenhum ecossistema — funciona com qualquer projeto PHP e permite escrever migrations em SQL puro ou na API fluente.

Criando uma migration

vendor/bin/phinx create CriarTabelaUsers

O arquivo gerado fica em database/migrations/ com timestamp de versão. Dentro, você implementa os métodos up() e down().

Boas práticas

  • Sempre implementar down() — rollback sem down é uma migration incompleta
  • Usar execute() para SQL complexo em vez da API fluente — mais previsível
  • Cada migration deve ser atômica — uma única responsabilidade
  • Nunca alterar uma migration já aplicada em produção — crie uma nova
Tratar migrations como código: revisão em PR, testes em staging antes de produção, e jamais editar o histórico.

Status e rollback

Os comandos mais usados no dia a dia:

composer migrate           # aplica pendentes
composer migrate:rollback  # desfaz a última
composer migrate:status    # lista estado atual