chore: heygermany customer project
This commit is contained in:
137
db/postgres/0024-analysis-model-contract.sql
Normal file
137
db/postgres/0024-analysis-model-contract.sql
Normal file
@@ -0,0 +1,137 @@
|
||||
ALTER TABLE app.candidate_education DROP CONSTRAINT IF EXISTS ai_data_requires_document;
|
||||
ALTER TABLE app.candidate_license DROP CONSTRAINT IF EXISTS ai_data_requires_document;
|
||||
ALTER TABLE app.candidate_language DROP CONSTRAINT IF EXISTS ai_data_requires_document;
|
||||
ALTER TABLE app.candidate_experience DROP CONSTRAINT IF EXISTS ai_data_requires_document;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM app.candidate_education
|
||||
GROUP BY candidate_id
|
||||
HAVING COUNT(*) > 1
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Manual migration required: candidate_education still has multiple rows per candidate.';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM app.candidate_license
|
||||
GROUP BY candidate_id
|
||||
HAVING COUNT(*) > 1
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Manual migration required: candidate_license still has multiple rows per candidate.';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM app.candidate_language
|
||||
GROUP BY candidate_id
|
||||
HAVING COUNT(*) > 1
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Manual migration required: candidate_language still has multiple rows per candidate.';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM app.candidate_experience
|
||||
GROUP BY candidate_id
|
||||
HAVING COUNT(*) > 1
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Manual migration required: candidate_experience still has multiple rows per candidate.';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM app.candidate_document
|
||||
WHERE category = 'transcript'::app.candidate_document_type
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Manual migration required: transcript documents must be re-categorized before applying schema contract.';
|
||||
END IF;
|
||||
END;
|
||||
$$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'candidate_education_candidate_id_key'
|
||||
) THEN
|
||||
ALTER TABLE app.candidate_education
|
||||
ADD CONSTRAINT candidate_education_candidate_id_key UNIQUE (candidate_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'candidate_license_candidate_id_key'
|
||||
) THEN
|
||||
ALTER TABLE app.candidate_license
|
||||
ADD CONSTRAINT candidate_license_candidate_id_key UNIQUE (candidate_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'candidate_language_candidate_id_key'
|
||||
) THEN
|
||||
ALTER TABLE app.candidate_language
|
||||
ADD CONSTRAINT candidate_language_candidate_id_key UNIQUE (candidate_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'candidate_experience_candidate_id_key'
|
||||
) THEN
|
||||
ALTER TABLE app.candidate_experience
|
||||
ADD CONSTRAINT candidate_experience_candidate_id_key UNIQUE (candidate_id);
|
||||
END IF;
|
||||
END;
|
||||
$$;
|
||||
|
||||
ALTER TABLE app.candidate_education
|
||||
DROP CONSTRAINT IF EXISTS candidate_education_source_document_id_fkey,
|
||||
DROP COLUMN IF EXISTS source_document_id;
|
||||
|
||||
ALTER TABLE app.candidate_license
|
||||
DROP CONSTRAINT IF EXISTS candidate_license_source_document_id_fkey,
|
||||
DROP COLUMN IF EXISTS source_document_id;
|
||||
|
||||
ALTER TABLE app.candidate_language
|
||||
DROP CONSTRAINT IF EXISTS candidate_language_source_document_id_fkey,
|
||||
DROP COLUMN IF EXISTS source_document_id;
|
||||
|
||||
ALTER TABLE app.candidate_experience
|
||||
DROP CONSTRAINT IF EXISTS candidate_experience_source_document_id_fkey,
|
||||
DROP COLUMN IF EXISTS source_document_id;
|
||||
|
||||
DROP TABLE IF EXISTS app.candidate_transcript CASCADE;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_type
|
||||
WHERE typnamespace = 'app'::regnamespace
|
||||
AND typname = 'candidate_document_type_v2'
|
||||
) THEN
|
||||
DROP TYPE app.candidate_document_type_v2;
|
||||
END IF;
|
||||
END;
|
||||
$$;
|
||||
|
||||
CREATE TYPE app.candidate_document_type_v2 AS ENUM (
|
||||
'education',
|
||||
'license',
|
||||
'language',
|
||||
'work_experience'
|
||||
);
|
||||
|
||||
ALTER TABLE app.candidate_document
|
||||
ALTER COLUMN category TYPE app.candidate_document_type_v2
|
||||
USING category::text::app.candidate_document_type_v2;
|
||||
|
||||
DROP TYPE app.candidate_document_type;
|
||||
ALTER TYPE app.candidate_document_type_v2 RENAME TO candidate_document_type;
|
||||
Reference in New Issue
Block a user