diff --git a/backend/services/authorization-service/prisma/migrations/20241217_add_soft_delete/migration.sql b/backend/services/authorization-service/prisma/migrations/20241217_add_soft_delete/migration.sql index 6c66c32f..8a28210a 100644 --- a/backend/services/authorization-service/prisma/migrations/20241217_add_soft_delete/migration.sql +++ b/backend/services/authorization-service/prisma/migrations/20241217_add_soft_delete/migration.sql @@ -10,9 +10,11 @@ UPDATE authorization_roles SET deleted_at = revoked_at WHERE status = 'REVOKED' AND deleted_at IS NULL; --- 3. 删除原有的唯一约束(如果存在) +-- 3. 删除原有的唯一约束或索引(如果存在) +-- 注意: Prisma 生成的可能是 CONSTRAINT 或 INDEX,需要两种都尝试删除 ALTER TABLE authorization_roles DROP CONSTRAINT IF EXISTS authorization_roles_account_sequence_role_type_region_code_key; +DROP INDEX IF EXISTS authorization_roles_account_sequence_role_type_region_code_key; -- 4. 创建部分唯一索引(只对未删除的记录生效) -- 这是大厂的标准做法,支持软删除后重新创建相同记录