Files
krow_backend/migrations/000001_initial_schema.down.sql
2026-08-24 13:06:29 +05:30

60 lines
2.6 KiB
SQL

-- ============================================================================
-- Krow — initial schema, reversed.
--
-- Drops exactly what 000001_initial_schema.up.sql created, in reverse
-- dependency order, and nothing else. Every DROP is qualified to `public` and
-- named explicitly — there is no CASCADE on a schema, no DROP SCHEMA, and no
-- DROP DATABASE anywhere in this file.
-- ============================================================================
SET search_path = public;
-- Tables, children before parents. Indexes and table-level constraints are
-- dropped implicitly with their table.
DROP TABLE IF EXISTS public.user_activity;
DROP TABLE IF EXISTS public.evidence;
DROP TABLE IF EXISTS public.shift_records;
DROP TABLE IF EXISTS public.assignments;
DROP TABLE IF EXISTS public.staff;
DROP TABLE IF EXISTS public.ai_interviews;
DROP TABLE IF EXISTS public.job_applications;
DROP TABLE IF EXISTS public.worker_profiles;
DROP TABLE IF EXISTS public.job_postings;
DROP TABLE IF EXISTS public.learning_paths;
DROP TABLE IF EXISTS public.courses;
DROP TABLE IF EXISTS public.badges;
DROP TABLE IF EXISTS public.certifications;
DROP TABLE IF EXISTS public.role_categories;
DROP TABLE IF EXISTS public.user_preferences;
DROP TABLE IF EXISTS public.users;
DROP TABLE IF EXISTS public.organizations;
-- Enums, after every table that referenced them is gone.
DROP TYPE IF EXISTS public.badge_verification;
DROP TYPE IF EXISTS public.badge_level;
DROP TYPE IF EXISTS public.evidence_verdict;
DROP TYPE IF EXISTS public.challenge_type;
DROP TYPE IF EXISTS public.skill_level;
DROP TYPE IF EXISTS public.course_status;
DROP TYPE IF EXISTS public.shift_status;
DROP TYPE IF EXISTS public.assignment_status;
DROP TYPE IF EXISTS public.profile_tier;
DROP TYPE IF EXISTS public.staff_status;
DROP TYPE IF EXISTS public.interview_verdict;
DROP TYPE IF EXISTS public.application_status;
DROP TYPE IF EXISTS public.english_level;
DROP TYPE IF EXISTS public.posting_priority;
DROP TYPE IF EXISTS public.posting_status;
-- The citext extension is deliberately NOT dropped.
--
-- CREATE EXTENSION IF NOT EXISTS is a no-op when the extension already exists,
-- so the up migration cannot tell whether it created citext or inherited it.
-- Dropping it on the way down would therefore risk removing an object this
-- migration never owned, and would break any other schema that has since
-- adopted the type. Leaving it is harmless: it holds no data, and re-applying
-- the up migration is unaffected.
--
-- To remove it by hand on a database where nothing else uses it:
-- DROP EXTENSION IF EXISTS citext;