Migrations standalone para o banco de leads
TLDR: Adicionar o setup mínimo de Ruby/ActiveRecord para rodar migrations contra o banco
leads, sem precisar de uma aplicação Rails completa.
Contexto
O banco leads (PostgreSQL 17, provisionado via Terraform) não tinha nenhum serviço responsável por gerenciar seu schema. Era preciso o setup mínimo de Ruby para rodar migrations do ActiveRecord sem carregar uma app Rails inteira.
Objetivos
- Rodar
db:migrateedb:rollbackcontra o banco de leads - Gerar arquivos de migration com timestamp através de um target de make
- Seguir as convenções do projeto (targets de make em
.project/make/, serviço nocompose.ymlda raiz)
Fora de escopo
— (não registrado na spec original)
Mudanças
leads/Gemfile—activerecord,pg,rake,standalone_migrationsleads/Rakefile— carrega as tasks do AR viastandalone_migrationse adiciona a taskdb:generateleads/lib/db.rb— configuração da conexão do AR via variáveis de ambienteLEADS_DB_*leads/db/migrate/— diretório vazio para as migrationscompose.yml— serviçoleads(ruby:3.3-alpine, mesma rede do postgres).project/make/leads.mk—leads.db.migrate,leads.db.rollback,leads.db.create,leads.migration.createMakefile—include .project/make/leads.mk
Como verificar
bash
make leads.db.create
make leads.migration.create name=create_contacts
make leads.db.migrate
make leads.db.rollback
Documentação
— (não registrado na spec original)