36 lines
1.3 KiB
SQL
36 lines
1.3 KiB
SQL
-- Backup / canonical storage: official printable DOCX+PDF roles + explicit storage_kind.
|
|
-- Apply: psql "$INITIATIVE_DATABASE_URL" -f migrations/009_backup_artifact_roles_storage_kind.sql
|
|
|
|
ALTER TABLE application_artifacts DROP CONSTRAINT IF EXISTS application_artifacts_role_check;
|
|
ALTER TABLE application_artifacts ADD CONSTRAINT application_artifacts_role_check CHECK (role IN (
|
|
'full_pdf',
|
|
'abstract',
|
|
'poster',
|
|
'textbook_evidence',
|
|
'research_evidence',
|
|
'technical_evidence',
|
|
'other',
|
|
'official_form_docx',
|
|
'official_form_pdf'
|
|
));
|
|
|
|
ALTER TABLE application_artifacts
|
|
ADD COLUMN IF NOT EXISTS storage_kind TEXT;
|
|
|
|
UPDATE application_artifacts SET storage_kind = CASE
|
|
WHEN storage_uri LIKE 'http://%' OR storage_uri LIKE 'https://%' THEN 'external_url'
|
|
WHEN storage_uri LIKE '/submitted-initiatives/%' THEN 'filesystem'
|
|
WHEN role IN ('research_evidence', 'textbook_evidence', 'technical_evidence') THEN 'minio_attachments'
|
|
ELSE 'minio_exports'
|
|
END
|
|
WHERE storage_kind IS NULL;
|
|
|
|
ALTER TABLE application_artifacts DROP CONSTRAINT IF EXISTS application_artifacts_storage_kind_check;
|
|
ALTER TABLE application_artifacts ADD CONSTRAINT application_artifacts_storage_kind_check
|
|
CHECK (storage_kind IS NULL OR storage_kind IN (
|
|
'minio_exports',
|
|
'minio_attachments',
|
|
'filesystem',
|
|
'external_url'
|
|
));
|