Files
Jyotisha/frontend/supabase/migrations/20260814025000_personal_report_document_v2.sql
T
2026-08-15 05:10:37 +08:00

43 lines
1.6 KiB
PL/PgSQL

-- Personal report document v2 persistence metadata.
--
-- Existing v1 rows remain readable. New report creation persists an explicit
-- product depth and the current report_document.v2 schema version.
begin;
-- The hosted Supabase stream added named Skill identity in the preceding
-- immutable-registry migration. The self-hosted/local stream does not carry
-- that historical migration, so repeat the forward-compatible columns here.
-- `if not exists` keeps the two migration streams byte-identical and safe.
alter table public.personal_reports
add column if not exists skill_name text
check (
skill_name is null
or skill_name ~ '^[a-z0-9]([a-z0-9._-]*[a-z0-9])?$'
),
add column if not exists skill_version text
check (
skill_version is null
or (
length(skill_version) between 5 and 80
and skill_version ~ '^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$'
)
);
alter table public.personal_reports
add column if not exists depth text not null default 'standard';
alter table public.personal_reports
drop constraint if exists personal_reports_depth_check;
alter table public.personal_reports
add constraint personal_reports_depth_check
check (depth in ('concise', 'standard', 'deep', 'research'));
alter table public.personal_reports
drop constraint if exists personal_reports_schema_version_check;
alter table public.personal_reports
add constraint personal_reports_schema_version_check
check (schema_version in ('report_document.v1', 'report_document.v2'));
commit;