003f2eb2a6
- F6.0 (migration): clone_tenant_template pros 9 tenants existentes (schemas vazios; dispara trigger F5 -> expostos no PostgREST) - F6.1 (manual supabase_admin): copia dados public -> schemas com session_replication_role=replica (desabilita FK check, so supabase_admin). Tabelas com tenant_id por filtro; 3 filhas sem tenant_id (commitment_services, insurance_plan_services, recurrence_rule_services) por JOIN no pai; exclui colunas GENERATED (net_amount, margin_brl); reset de 4 sequences; ON CONFLICT DO NOTHING (idempotente). Dados continuam em public (DROP so na F6.3) - Verificado: contagens public vs schemas batem (35 patients, 37 eventos, 355 mensagens, 54 financeiro...); seeds default replicados por schema Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
949 B
PL/PgSQL
30 lines
949 B
PL/PgSQL
-- =============================================================================
|
|
-- F6.0 — Clona os schemas dos tenants JÁ EXISTENTES (cutover)
|
|
--
|
|
-- Até aqui só tenants criados PÓS-F2 ganhavam schema. Os 9 tenants que já
|
|
-- existiam precisam dos seus schemas (ainda vazios — dados migram na F6.1).
|
|
-- Idempotente: só clona quem não está em tenant_schemas. Cada clone dispara
|
|
-- o trigger da F5 (expõe no PostgREST).
|
|
-- =============================================================================
|
|
|
|
BEGIN;
|
|
|
|
DO $$
|
|
DECLARE
|
|
r record;
|
|
v_schema text;
|
|
BEGIN
|
|
FOR r IN
|
|
SELECT t.id, t.slug
|
|
FROM public.tenants t
|
|
LEFT JOIN public.tenant_schemas ts ON ts.tenant_id = t.id
|
|
WHERE ts.tenant_id IS NULL
|
|
ORDER BY t.created_at, t.id
|
|
LOOP
|
|
v_schema := public.clone_tenant_template(r.id);
|
|
RAISE NOTICE 'F6.0: tenant % (%) -> %', r.id, r.slug, v_schema;
|
|
END LOOP;
|
|
END $$;
|
|
|
|
COMMIT;
|