CLI e biblioteca Go para gerenciar alterações no schema do banco de dados com arquivos SQL versionados ou funções Go.
golang-migrate/migrate
Ferramenta de migração de bancos de dados escrita em Go, com CLI e biblioteca para aplicar alterações de schema em ordem em vários bancos.
- Estrelas
- 18,983
- Forks
- 1,618
- Issues abertas
- 492
- Último commit
- mês passado
O que é?
migrate lê arquivos de migração versionados de fontes como o sistema de arquivos local, S3 ou GitHub e os aplica em ordem a um banco de dados de destino. Cada migração é formada por um par de arquivos up e down, permitindo avançar as alterações ou revertê-las. Os drivers de banco de dados executam as migrações, enquanto o núcleo centraliza a lógica de ordenação e estado.
A ferramenta oferece suporte a vários bancos de dados, incluindo PostgreSQL, MySQL e MariaDB, SQLite, MongoDB, Cassandra, Neo4j, Google Cloud Spanner, CockroachDB, ClickHouse e SQL Server. As fontes de migração incluem caminhos do sistema de arquivos, io/fs, dados binários incorporados, GitHub, GitLab, Bitbucket, AWS S3 e Google Cloud Storage.
Você pode executá-la como uma ferramenta de linha de comando independente, usar a imagem oficial do Docker ou importá-la como uma biblioteca Go. A biblioteca aceita seu próprio cliente de banco de dados e logger, além de permitir interrupções controladas para ajudar a evitar migrações parciais.
Recursos principais
- 01Aplica arquivos de migração up e down na ordem das versões.
- 02Oferece suporte a vários bancos de dados, incluindo PostgreSQL, MySQL, SQLite, MongoDB e Spanner.
- 03Lê migrações do sistema de arquivos, de dados incorporados, de plataformas Git e de armazenamento em nuvem.
- 04Disponibiliza uma CLI, uma imagem Docker e uma biblioteca Go.
- 05Aceita um cliente de banco de dados existente e um logger personalizado quando usada como biblioteca.
Casos de uso
- Versionar alterações de schema em um serviço Go conectado a PostgreSQL ou MySQL.
- Executar migrações como uma etapa de um pipeline de CI/CD ou de implantação em contêineres.
- Incorporar migrações a um binário Go para distribuí-las junto com a aplicação.
- Gerenciar alterações de schema em vários mecanismos de banco de dados usando uma única ferramenta.
Início rápido
- 1
Leia o guia de introdução e instale a CLI conforme descrito
- 2
Execute uma migração com Docker, substituindo o marcador de posição do diretório de migrações
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Antes de usar
- A licença não está claramente identificada nos metadados do projeto, então verifique os termos de licença do repositório antes de usar.
Tópicos
Perguntas frequentes
- O que é migrate?
- Ferramenta de migração de bancos de dados escrita em Go, com CLI e biblioteca para aplicar alterações de schema em ordem em vários bancos. migrate lê arquivos de migração versionados de fontes como o sistema de arquivos local, S3 ou GitHub e os aplica em ordem a um banco de dados de destino. Cada migração é formada por um par de arquivos up e down, permitindo avançar as alterações ou revertê-las. Os drivers de banco de dados executam as migrações, enquanto o núcleo centraliza a lógica de ordenação e estado.
- migrate é gratuito? Qual é a licença?
- migrate é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- migrate ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de migrate foi em 9 de set. de 2026.
- Para que posso usar migrate?
- Versionar alterações de schema em um serviço Go conectado a PostgreSQL ou MySQL. Executar migrações como uma etapa de um pipeline de CI/CD ou de implantação em contêineres. Incorporar migrações a um binário Go para distribuí-las junto com a aplicação. Gerenciar alterações de schema em vários mecanismos de banco de dados usando uma única ferramenta.
- Como instalar migrate?
- Leia o guia de introdução e instale a CLI conforme descrito Execute uma migração com Docker, substituindo o marcador de posição do diretório de migrações: docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
- Onde consigo migrate?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/golang-migrate/migrate
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
Cliente SQL desktop gratuito e multiplataforma, com ferramentas para bancos de dados e suporte a mais de 100 bancos via drivers JDBC e ODBC.
Cliente de banco de dados gratuito e local-first, com IA e workspace SQL, compatível com mais de 40 bancos via desktop, web, Docker e CLI.
Um compilador SQL que lê suas consultas e gera código type-safe em Go, Kotlin, Python e TypeScript.
Um construtor de consultas SQL para TypeScript com segurança de tipos e autocomplete para tabelas, colunas e tipos de resultado em vários bancos de dados SQL.