From fe6cc3bc93193f7b565345019ccc5642bd78f46d Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Fri, 15 Oct 2021 20:01:21 -0400 Subject: [PATCH] Fix recursive relation constraint for MSSQL --- .../migrations/20210924A-add-collection-organization.ts | 2 +- api/src/services/collections.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/api/src/database/migrations/20210924A-add-collection-organization.ts b/api/src/database/migrations/20210924A-add-collection-organization.ts index 5929065ad8..8c41628cc7 100644 --- a/api/src/database/migrations/20210924A-add-collection-organization.ts +++ b/api/src/database/migrations/20210924A-add-collection-organization.ts @@ -3,7 +3,7 @@ import { Knex } from 'knex'; export async function up(knex: Knex): Promise { await knex.schema.alterTable('directus_collections', (table) => { table.integer('sort'); - table.string('group', 64).references('collection').inTable('directus_collections').onDelete('SET NULL'); + table.string('group', 64).references('collection').inTable('directus_collections'); table.string('collapse').defaultTo('open').notNullable(); }); } diff --git a/api/src/services/collections.ts b/api/src/services/collections.ts index 169c55797a..9b897fbe30 100644 --- a/api/src/services/collections.ts +++ b/api/src/services/collections.ts @@ -365,6 +365,9 @@ export class CollectionsService { } await this.knex.transaction(async (trx) => { + // Make sure this collection isn't used as a group in any other collections + await trx('directus_collections').update({ group: null }).where({ group: collectionKey }); + if (collectionToBeDeleted!.meta) { const collectionItemsService = new ItemsService('directus_collections', { knex: trx,