ORM headless e leve para TypeScript, compatível com PostgreSQL, MySQL e SQLite em Node.js, Bun, Deno e runtimes edge.
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
Instalar pelo Homebrew no macOS
brew install dbmate - 2
Verificar se a ferramenta instalada exibe a ajuda
dbmate --help - 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
Editor SQL e gerenciador de bancos de dados multiplataforma para Linux, macOS e Windows, com suporte a MySQL, PostgreSQL, SQLite, SQL Server e muitos outros.
Cliente de banco de dados multiplataforma e leve para mais de 100 bancos, com app desktop, Docker, CLI, assistente de SQL com IA integrado e servidor MCP.
Uma interface de terminal controlada pelo teclado para se conectar a diversos bancos de dados SQL e consultá-los, inspirada no lazygit.
Ferramenta full-stack para explorar, projetar, navegar, documentar e analisar schemas de bancos de dados, com diagramas ERD para bancos grandes e complexos.
Uma IDE SQL no navegador, implantada junto aos seus dados e conectada a dezenas de bancos de dados e repositórios de dados, com SSO, trilha de auditoria e consultas assistidas por IA, sob a licença MIT.