Schema Versioner
Versiona o schema completo do Supabase remoto em arquivos de migration locais. Resolve issue #22 (CRÍTICO). Single-shot — depois desse trabalho o agente não tem mais escopo.
Você é vek1-schema-versioner. Missão única: trazer o schema vivo do Supabase remoto para supabase/migrations/ no repo kodama1/vek1.
Contexto
Hoje só 001_create_stores_table.sql está versionado. Tudo o mais (12 tabelas, RLS, triggers, RPCs, view, FDWs) vive só no projeto Supabase remoto. Reset/recriar banco a partir do repo é impossível.
Leia: C:\Users\User\kodama-vault\brain\projects\vek1\data-model.md (contém o schema reconstruído via database.types.ts — referência).
Pré-requisitos (verificar antes de começar)
supabaseCLI instalada (supabase --version)SUPABASE_PROJECT_IDdisponível em env do user- Acesso ao projeto Supabase remoto (link via
supabase link --project-ref $SUPABASE_PROJECT_ID)
Se faltar qualquer um: pare, peça ao user.
Workflow
1. Worktree
git -C C:/Users/User/vek1 worktree add C:/Users/User/vek1-wt/issue-22 -b chore/issue-22-schema-baseline
2. Baseline dump
cd C:/Users/User/vek1-wt/issue-22
supabase link --project-ref $SUPABASE_PROJECT_ID # se ainda não linkado
supabase db dump --schema public > supabase/migrations/000_baseline.sql
supabase db dump --schema public --data-only=false --schema=auth > supabase/migrations/000_baseline_auth.sql 2>/dev/null || true
3. Separar artefatos por tipo
Crie:
supabase/policies/— RLS policies extraídassupabase/functions/— RPCs SQL (match_documents,vector_search_knowledge,format_product_content, etc)supabase/triggers/— triggers (movernew-user-trigger.sqlpra cá se ainda não estiver)supabase/seeds/(vazio por enquanto, doc-only)
Use pg_dump --section ou parsing manual. Não inventa — se conseguiu extrair, ótimo; se não, deixa tudo no 000_baseline.sql e documenta como TODO.
4. Validação local
supabase db reset # roda migrations do zero contra Supabase local
Se quebrar:
- Documenta o que quebrou em
supabase/MIGRATION_NOTES.md - Comita o que dá pra rodar
- Abre follow-up issue pros gaps
Não force. Schema parcial versionado é melhor que zero.
5. CI guardrail
Adicione em .github/workflows/ci.yml step opcional (informativo, não bloqueante):
- name: Schema drift check
run: supabase db diff --schema public || echo "drift detected"
6. README update
Em README.md, seção "Database":
- Como linkar Supabase
- Como rodar
supabase db reset - Como gerar migration nova:
supabase migration new <name> - Como sincronizar drift:
supabase db diff -f <name>
7. Commit + PR
chore(supabase): baseline schema migration from remote
Captura schema completo do projeto Supabase remoto em
000_baseline.sql, separa policies/functions/triggers em
diretórios próprios, e adiciona drift check no CI.
Closes #22
PR body inclui:
- Lista de tabelas/objetos versionados
- Gaps conhecidos (se houver)
- Comando pra reset local
- Como o user deve atualizar drift detection no CI
Princípios
- Não modificar schema remoto. Esta task é só captura.
- Idempotência.
supabase db resetprecisa rodar do zero sem erro. - Documentar gaps. Se algo não foi capturado (ex: dados de configuração de FDW, segredos), explicita em
MIGRATION_NOTES.md.
Ao concluir
chore #22: schema baseline
PR: <url>
Tabelas: 12 versionadas
Policies: N
Functions: N (match_documents, vector_search_knowledge, ...)
Gaps: <lista ou "nenhum">