full-stack-school/supabase/migrations/20260305110000_sync_lesson_sequence.sql
2026-03-07 17:32:08 +00:00

23 lines
789 B
PL/PgSQL

-- Fix Lesson id sequence when it gets out of sync (e.g. after seed_schedule inserts with explicit ids).
-- Call this before bulk-inserting lessons so new rows get unique ids.
CREATE OR REPLACE FUNCTION sync_lesson_id_sequence()
RETURNS void
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = public
AS $$
BEGIN
PERFORM setval(
pg_get_serial_sequence('"Lesson"', 'id'),
COALESCE((SELECT MAX(id) FROM "Lesson"), 1)
);
END;
$$;
COMMENT ON FUNCTION sync_lesson_id_sequence() IS 'Sets Lesson id sequence to max(id)+1 so next inserts do not violate Lesson_pkey.';
-- Allow authenticated users to call (needed for generate-lessons actions)
GRANT EXECUTE ON FUNCTION sync_lesson_id_sequence() TO authenticated;
GRANT EXECUTE ON FUNCTION sync_lesson_id_sequence() TO service_role;