diff --git a/hub/prisma/migrations/20260719140000_agent_config_folder_tree/migration.sql b/hub/prisma/migrations/20260719140000_agent_config_folder_tree/migration.sql index 9f8f1af..b6a05d3 100644 --- a/hub/prisma/migrations/20260719140000_agent_config_folder_tree/migration.sql +++ b/hub/prisma/migrations/20260719140000_agent_config_folder_tree/migration.sql @@ -28,6 +28,6 @@ CREATE INDEX "OrganizationAgentRole_organizationId_folderId_idx" ON "Organizatio -- AddForeignKey ALTER TABLE "OrganizationAgentConfigFolder" ADD CONSTRAINT "OrganizationAgentConfigFolder_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE "OrganizationAgentConfigFolder" ADD CONSTRAINT "OrganizationAgentConfigFolder_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "OrganizationAgentConfigFolder"("id") ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE "OrganizationAgentConfigFolder" ADD CONSTRAINT "OrganizationAgentConfigFolder_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "OrganizationAgentConfigFolder"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "OrganizationAgentSkill" ADD CONSTRAINT "OrganizationAgentSkill_folderId_fkey" FOREIGN KEY ("folderId") REFERENCES "OrganizationAgentConfigFolder"("id") ON DELETE SET NULL ON UPDATE CASCADE; ALTER TABLE "OrganizationAgentRole" ADD CONSTRAINT "OrganizationAgentRole_folderId_fkey" FOREIGN KEY ("folderId") REFERENCES "OrganizationAgentConfigFolder"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/hub/prisma/migrations/20260730120000_agent_config_folder_parent_cascade/migration.sql b/hub/prisma/migrations/20260730120000_agent_config_folder_parent_cascade/migration.sql new file mode 100644 index 0000000..7a096f0 --- /dev/null +++ b/hub/prisma/migrations/20260730120000_agent_config_folder_parent_cascade/migration.sql @@ -0,0 +1,5 @@ +-- Allow Organization wipe/cascade to clear nested agent-config folders. +-- Service layer still refuses non-empty folder deletes (ADR-0028); this only +-- unblocks parent-row removal during org teardown and test resetDb. +ALTER TABLE "OrganizationAgentConfigFolder" DROP CONSTRAINT "OrganizationAgentConfigFolder_parentId_fkey"; +ALTER TABLE "OrganizationAgentConfigFolder" ADD CONSTRAINT "OrganizationAgentConfigFolder_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "OrganizationAgentConfigFolder"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/hub/prisma/schema.prisma b/hub/prisma/schema.prisma index e70f880..621ee39 100644 --- a/hub/prisma/schema.prisma +++ b/hub/prisma/schema.prisma @@ -173,7 +173,7 @@ model OrganizationAgentConfigFolder { updatedAt DateTime @updatedAt organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade) - parent OrganizationAgentConfigFolder? @relation("agentConfigFolderTree", fields: [parentId], references: [id], onDelete: Restrict) + parent OrganizationAgentConfigFolder? @relation("agentConfigFolderTree", fields: [parentId], references: [id], onDelete: Cascade) children OrganizationAgentConfigFolder[] @relation("agentConfigFolderTree") skills OrganizationAgentSkill[] roles OrganizationAgentRole[]