From 06e2fa9d111c18fad3422953082266db9329fc91 Mon Sep 17 00:00:00 2001 From: James Date: Wed, 11 Oct 2023 10:47:10 -0400 Subject: [PATCH] fix: postgres select fields within groups (#3570) --- .vscode/launch.json | 2 +- .../db-postgres/src/schema/traverseFields.ts | 4 ++-- test/fields/collections/Select/index.ts | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 8cd523d5d9..b66a43ec18 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -17,7 +17,7 @@ "type": "node-terminal" }, { - "command": "pnpm run dev:postgres collections-graphql", + "command": "pnpm run dev:postgres fields", "cwd": "${workspaceFolder}", "name": "Run Dev Postgres", "request": "launch", diff --git a/packages/db-postgres/src/schema/traverseFields.ts b/packages/db-postgres/src/schema/traverseFields.ts index f9375d05d3..fe57d4c93d 100644 --- a/packages/db-postgres/src/schema/traverseFields.ts +++ b/packages/db-postgres/src/schema/traverseFields.ts @@ -174,7 +174,7 @@ export const traverseFields = ({ case 'radio': case 'select': { - const enumName = `enum_${newTableName}_${columnPrefix || ''}${toSnakeCase(field.name)}` + const enumName = `enum_${newTableName}_${toSnakeCase(field.name)}` adapter.enums[enumName] = pgEnum( enumName, @@ -188,7 +188,7 @@ export const traverseFields = ({ ) if (field.type === 'select' && field.hasMany) { - const selectTableName = `${newTableName}_${toSnakeCase(fieldName)}` + const selectTableName = `${newTableName}_${toSnakeCase(field.name)}` const baseColumns: Record = { order: integer('order').notNull(), parent: parentIDColumnMap[parentIDColType]('parent_id') diff --git a/test/fields/collections/Select/index.ts b/test/fields/collections/Select/index.ts index 7900f8e9e4..02abff6f4a 100644 --- a/test/fields/collections/Select/index.ts +++ b/test/fields/collections/Select/index.ts @@ -122,12 +122,30 @@ const SelectFields: CollectionConfig = { type: 'select', options: ['One', 'Two', 'Three'], }, + { + type: 'group', + name: 'settings', + fields: [ + { + name: 'category', + type: 'select', + hasMany: true, + options: [ + { value: 'a', label: 'A' }, + { value: 'b', label: 'B' }, + ], + }, + ], + }, ], } export const selectsDoc = { select: 'one', selectHasMany: ['two', 'four'], + settings: { + category: ['a'], + }, } export default SelectFields