Repolode
golang-migrate

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. 1

    Leia o guia de introdução e instale a CLI conforme descrito

  2. 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