diff --git a/packages/db-postgres/src/schema/traverseFields.ts b/packages/db-postgres/src/schema/traverseFields.ts index b09d66e29ce..852d1a46c40 100644 --- a/packages/db-postgres/src/schema/traverseFields.ts +++ b/packages/db-postgres/src/schema/traverseFields.ts @@ -264,7 +264,7 @@ export const traverseFields = ({ name: `${selectTableName}_parent_fk`, columns: [cols.parent], foreignColumns: [adapter.tables[parentTableName].id], - }), + }).onDelete('cascade'), parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent), } diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index c3854d64173..b83e33376db 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -37,6 +37,7 @@ import { tabsFieldsSlug, textFieldsSlug, } from './slugs' +import { NotFound } from '../../packages/payload/src/errors' let client: RESTClient let graphQLClient: GraphQLClient @@ -351,6 +352,26 @@ describe('Fields', () => { expect(updatedDoc.selectHasMany).toEqual(['one', 'two']) }) + // https://github.com/payloadcms/payload/issues/6485 + it('delete with selectHasMany relationship', async () => { + const { id } = await payload.create({ + collection: 'select-fields', + data: { + selectHasMany: ['one', 'two'], + }, + }) + await payload.delete({ + collection: 'select-fields', + id, + }) + await expect( + payload.findByID({ + collection: 'select-fields', + id, + }), + ).rejects.toThrow(NotFound) + }) + it('should query hasMany in', async () => { const hit = await payload.create({ collection: 'select-fields',