Pular para o conteúdo principal

Migrations com golang-migrate

golang-migrate

  • Biblioteca para gerenciar migrações de banco de dados, semelhante ao Flyway ou Liquibase em Java.
  • Suporta SQL ou arquivos Go para definir migrações.

Instalação

go get -u github.com/golang-migrate/migrate/v4

Exemplo (migração SQL)

Crie arquivos de migração:

migrations/
├── 202506120001_create_produtos.up.sql
└── 202506120001_create_produtos.down.sql
  • No arquivo 202506120001_create_produtos.up.sql, temos:
CREATE TABLE produtos (
id UUID PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
preco DOUBLE PRECISION NOT NULL
);

Para download do código-fonte, clique aqui!

  • No arquivo 202506120001_create_produtos.down.sql, temos:
DROP TABLE produtos;

Para download do código-fonte, clique aqui!

  • Código para aplicar migrações:
Carregando editor interativo...

Comparação com Java

Java

  • Flyway e Liquibase gerenciam migrações com SQL ou Java.

Go

  • golang-migrate é mais simples, focado em SQL ou Go.
Caso de uso

Migrações garantem consistência do schema em ambientes de desenvolvimento, teste e produção.