Repolode
amacneil

amacneil/dbmate

Uma ferramenta de linha de comando leve e independente de frameworks para gerenciar migrações de banco de dados em SQL puro entre equipes e ambientes.

Estrelas
7,465
Forks
385
Issues abertas
31
Último commit
há 21 horas

O que é?

O Dbmate mantém o schema do banco de dados sincronizado entre desenvolvedores e servidores de produção executando arquivos de migração SQL identificados por versão e timestamp. Ele é distribuído como um binário independente, então pode ser usado com Go, Node.js, Python, Ruby, PHP, Rust, C++ ou qualquer outra stack que se conecte a um banco de dados compatível.

As migrações são escritas em SQL puro, com seções `migrate:up` e `migrate:down` no mesmo arquivo. Por padrão, cada migração é executada dentro de uma transação, e as versões aplicadas são registradas em uma tabela `schema_migrations`. O Dbmate também pode exportar o schema resultante para um arquivo `schema.sql`, permitindo visualizar as alterações no schema em diffs legíveis no git.

A ferramenta oferece suporte a PostgreSQL, MySQL, MariaDB, SQLite, ClickHouse, BigQuery e Spanner por meio da interface PostgreSQL. Os detalhes de conexão vêm de uma variável `DATABASE_URL` ou de um arquivo `.env`, e os comandos incluem criar, remover, aguardar o banco de dados ficar pronto e reverter migrações.

Recursos principais

  • 01Arquivos de migração em SQL puro com seções up e down
  • 02Migrações identificadas por timestamp para evitar conflitos de versão entre desenvolvedores
  • 03Por padrão, as migrações são executadas atomicamente dentro de uma transação
  • 04Exporta um arquivo schema.sql para revisar alterações no schema no controle de versão
  • 05Lê URLs de conexão de variáveis de ambiente ou de um arquivo .env

Casos de uso

  • Manter as alterações no schema sincronizadas entre uma equipe que trabalha no mesmo aplicativo
  • Gerenciar migrações de vários serviços escritos em linguagens diferentes
  • Criar e remover bancos de dados de teste no CI antes de executar uma suíte de testes
  • Executar migrações em produção ou em containers com uma etapa para aguardar o banco de dados

Início rápido

  1. 1

    Instalar pelo Homebrew no macOS

    brew install dbmate
  2. 2

    Verificar se a ferramenta instalada exibe a ajuda

    dbmate --help
  3. 3

    Instalar pelo NPM como dependência de desenvolvimento

    npm install --save-dev dbmate

Antes de usar

  • É necessária uma URL de conexão com o banco de dados, portanto você precisa de um servidor de banco de dados em execução, como PostgreSQL, MySQL ou SQLite.
  • As conexões com PostgreSQL exigem TLS por padrão, então em ambientes locais geralmente é preciso adicionar sslmode=disable.

Tópicos

Perguntas frequentes

O que é dbmate?
Uma ferramenta de linha de comando leve e independente de frameworks para gerenciar migrações de banco de dados em SQL puro entre equipes e ambientes. O Dbmate mantém o schema do banco de dados sincronizado entre desenvolvedores e servidores de produção executando arquivos de migração SQL identificados por versão e timestamp. Ele é distribuído como um binário independente, então pode ser usado com Go, Node.js, Python, Ruby, PHP, Rust, C++ ou qualquer outra stack que se conecte a um banco de dados compatível.
dbmate é gratuito? Qual é a licença?
dbmate é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
dbmate ainda é mantido?
Manutenção ativa. O último commit de dbmate foi em 18 de out. de 2026.
Para que posso usar dbmate?
Manter as alterações no schema sincronizadas entre uma equipe que trabalha no mesmo aplicativo Gerenciar migrações de vários serviços escritos em linguagens diferentes Criar e remover bancos de dados de teste no CI antes de executar uma suíte de testes Executar migrações em produção ou em containers com uma etapa para aguardar o banco de dados
Como instalar dbmate?
Instalar pelo Homebrew no macOS: brew install dbmate Verificar se a ferramenta instalada exibe a ajuda: dbmate --help Instalar pelo NPM como dependência de desenvolvimento: npm install --save-dev dbmate
Onde consigo dbmate?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/amacneil/dbmate

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados