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,