gohorsejobs/backend/migrations/036_ensure_jobs_work_mode.sql

28 lines
748 B
SQL

-- Migration: Ensure jobs.work_mode exists and accepts frontend values
ALTER TABLE jobs
ADD COLUMN IF NOT EXISTS work_mode VARCHAR(20);
-- Normalize legacy/invalid values before enforcing constraint
UPDATE jobs
SET work_mode = 'onsite'
WHERE work_mode IS NULL
OR work_mode NOT IN ('onsite', 'hybrid', 'remote');
ALTER TABLE jobs
ALTER COLUMN work_mode SET DEFAULT 'onsite';
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'jobs_work_mode_check'
) THEN
ALTER TABLE jobs
ADD CONSTRAINT jobs_work_mode_check
CHECK (work_mode IN ('onsite', 'hybrid', 'remote'));
END IF;
END $$;
CREATE INDEX IF NOT EXISTS idx_jobs_work_mode ON jobs(work_mode);