Files
app-dono-modulos/migrations
lucas.favaro 2cd3b13bcc
davinTI/app-dono-modulos/pipeline/head This commit looks good
Atualização da Procedure de carga de dados da Contribuição.
2026-05-25 10:40:58 -03:00
..
2026-03-27 17:09:12 -03:00

Migrations

Este projeto utiliza pressly/goose para gerenciamento de migrações de banco de dados. Cada ERP possui seu próprio set de migrations. Por exemplo, migrations/C5/*.sql, migrations/SENIOR/*.sql...

Instalação

go install github.com/pressly/goose/v3/cmd/goose@latest

Criando uma migração

goose -dir migrations/<ERP> create nome_da_migracao sql

Isso gera um arquivo com timestamp no formato YYYYMMDDHHMMSS_nome_da_migracao.sql contendo seções -- +goose Up e -- +goose Down.

Boas práticas

  • Sempre escreva a migração Down: garante que a migração possa ser revertida com segurança.
  • Uma mudança por migração: mantenha cada arquivo focado em uma única alteração (criar tabela, adicionar coluna, etc.).
  • Migrações devem ser idempotentes quando possível: use IF NOT EXISTS / IF EXISTS para evitar falhas em re-execução.
  • Nunca altere uma migração já aplicada: se algo precisa ser corrigido, crie uma nova migração.
  • Evite migrações destrutivas em produção: prefira adicionar colunas nullable e remover as antigas em uma migração posterior, em vez de renomear ou deletar diretamente.
  • Teste localmente antes de aplicar: rode up e down no ambiente local para verificar que ambas as direções funcionam.