CREATE OR REPLACE FUNCTION prevent_dashboard_version_mutation() RETURNS trigger AS $$ BEGIN RAISE EXCEPTION 'dashboard versions are immutable'; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE TRIGGER dashboard_versions_immutable_update BEFORE UPDATE ON dashboard_versions FOR EACH ROW EXECUTE FUNCTION prevent_dashboard_version_mutation(); CREATE INDEX IF NOT EXISTS dashboard_versions_created_at_idx ON dashboard_versions (dashboard_id, created_at DESC, version_number DESC);