Migrations com golang-migrate
golang-migrate
- Biblioteca para gerenciar migrações de banco de dados, semelhante ao
Flyway
ouLiquibase
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
eLiquibase
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.