15 lines
688 B
PL/PgSQL
15 lines
688 B
PL/PgSQL
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;
|