942780db1c
- Add structured grading policy with predefined types (Continuous Assessment, Midterm, Final Test, Exam) - Replace free-text category input with combobox selection in Grading Policy page - Update Lesson Editor to use dropdown selector for grading category assignment - Fix create_grading_category handler to capture organization context - Fix update_course handler to set audit context in database transaction - Implement getImageUrl helper for proper asset path resolution - Add unoptimized prop to organization logo images to bypass Next.js optimization - Add database migrations for organization_id in content tables - Seed default tutorial courses for Admin, Instructor, and Student roles - Fix audit log constraints and content schema issues
29 lines
1.1 KiB
SQL
29 lines
1.1 KiB
SQL
-- Migration: Final Content Schema Alignment
|
|
-- Scope: lessons, modules
|
|
|
|
-- 1. Add missing columns to lessons
|
|
ALTER TABLE lessons ADD COLUMN IF NOT EXISTS content_blocks JSONB DEFAULT '[]';
|
|
ALTER TABLE lessons ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
|
|
|
|
-- 2. Add missing columns to modules
|
|
ALTER TABLE modules ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
|
|
|
|
-- 3. Create Update Trigger for updated_at (if not already exists)
|
|
-- Function update_updated_at_column was defined in initial_schema.sql
|
|
|
|
-- Attach triggers to lessons and modules
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_lessons_updated_at') THEN
|
|
CREATE TRIGGER trg_lessons_updated_at
|
|
BEFORE UPDATE ON lessons
|
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_modules_updated_at') THEN
|
|
CREATE TRIGGER trg_modules_updated_at
|
|
BEFORE UPDATE ON modules
|
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
END IF;
|
|
END $$;
|