Files
xinmi/migrations/versioned/000210_instruction_skill_version_names.down.sql
T

15 lines
688 B
PL/PgSQL
Raw Normal View History

BEGIN;
-- Refuse rollback if independent versions now share a name; keep their data intact.
DO $$ BEGIN
IF EXISTS (SELECT 1 FROM tenant_skill_catalog WHERE deleted_at IS NULL AND instruction_only
GROUP BY tenant_id, created_by, name HAVING COUNT(*) > 1) THEN
RAISE EXCEPTION 'Skill personal versions share names; resolve names before rolling back';
END IF;
END $$;
DROP INDEX IF EXISTS uq_tenant_instruction_skill_owner_name;
CREATE UNIQUE INDEX uq_tenant_instruction_skill_owner_name
ON tenant_skill_catalog(tenant_id, created_by, name)
WHERE deleted_at IS NULL AND instruction_only;
ALTER TABLE tenant_skill_catalog DROP COLUMN IF EXISTS version_source_id;
COMMIT;