From 394c2bc23a4230f0e3d3959cfc56789d2df4716a Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 4 Oct 2023 11:48:45 -0400 Subject: [PATCH] chore(db-postgres): add name to all unique constraints --- packages/db-postgres/src/schema/build.ts | 22 ++++++------ .../db-postgres/src/schema/traverseFields.ts | 34 ++++++++++++++----- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/packages/db-postgres/src/schema/build.ts b/packages/db-postgres/src/schema/build.ts index 2c22e43a5..0a848049c 100644 --- a/packages/db-postgres/src/schema/build.ts +++ b/packages/db-postgres/src/schema/build.ts @@ -157,7 +157,10 @@ export const buildTable = ({ return acc }, { - _localeParent: unique('locale_parent_id_unique').on(cols._locale, cols._parentID), + _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on( + cols._locale, + cols._parentID, + ), }, ) }) @@ -254,18 +257,13 @@ export const buildTable = ({ if (hasLocalizedRelationshipField) { result.localeIdx = index('locale_idx').on(cols.locale) - result.parentPathOrderLocale = unique('parent_id_path_order_locale_unique').on( - cols.parent, - cols.path, - cols.order, - cols.locale, - ) + result.parentPathOrderLocale = unique( + `${relationshipsTableName}_parent_id_path_order_locale_unique`, + ).on(cols.parent, cols.path, cols.order, cols.locale) } else { - result.parentPathOrder = unique('parent_id_path_order_unique').on( - cols.parent, - cols.path, - cols.order, - ) + result.parentPathOrder = unique( + `${relationshipsTableName}_parent_id_path_order_unique`, + ).on(cols.parent, cols.path, cols.order) } return result diff --git a/packages/db-postgres/src/schema/traverseFields.ts b/packages/db-postgres/src/schema/traverseFields.ts index 1095fd991..04189e2bf 100644 --- a/packages/db-postgres/src/schema/traverseFields.ts +++ b/packages/db-postgres/src/schema/traverseFields.ts @@ -189,6 +189,7 @@ export const traverseFields = ({ ) if (field.type === 'select' && field.hasMany) { + const selectTableName = `${newTableName}_${toSnakeCase(fieldName)}` const baseColumns: Record = { order: integer('order').notNull(), parent: parentIDColumnMap[parentIDColType]('parent_id') @@ -205,7 +206,11 @@ export const traverseFields = ({ if (field.localized) { baseColumns.locale = adapter.enums.enum__locales('locale').notNull() baseExtraConfig.parentOrderLocale = (cols) => - unique().on(cols.parent, cols.order, cols.locale) + unique(`${selectTableName}_parent_id_order_locale_unique`).on( + cols.parent, + cols.order, + cols.locale, + ) } else { baseExtraConfig.parent = (cols) => index('parent_idx').on(cols.parent) baseExtraConfig.order = (cols) => index('order_idx').on(cols.order) @@ -215,8 +220,6 @@ export const traverseFields = ({ baseExtraConfig.value = (cols) => index('value_idx').on(cols.value) } - const selectTableName = `${newTableName}_${toSnakeCase(fieldName)}` - buildTable({ adapter, baseColumns, @@ -252,6 +255,7 @@ export const traverseFields = ({ } case 'array': { + const arrayTableName = `${newTableName}_${toSnakeCase(field.name)}` const baseColumns: Record = { _order: integer('_order').notNull(), _parentID: parentIDColumnMap[parentIDColType]('_parent_id') @@ -267,13 +271,16 @@ export const traverseFields = ({ if (field.localized && adapter.payload.config.localization) { baseColumns._locale = adapter.enums.enum__locales('_locale').notNull() baseExtraConfig._parentOrderLocale = (cols) => - unique().on(cols._parentID, cols._order, cols._locale) + unique(`${arrayTableName}_parent_id_order_locale_unique`).on( + cols._parentID, + cols._order, + cols._locale, + ) } else { - baseExtraConfig._parentOrder = (cols) => unique().on(cols._parentID, cols._order) + baseExtraConfig._parentOrder = (cols) => + unique(`${arrayTableName}_parent_id_order_unique`).on(cols._parentID, cols._order) } - const arrayTableName = `${newTableName}_${toSnakeCase(field.name)}` - const { relationsToBuild: subRelationsToBuild } = buildTable({ adapter, baseColumns, @@ -332,10 +339,19 @@ export const traverseFields = ({ if (field.localized && adapter.payload.config.localization) { baseColumns._locale = adapter.enums.enum__locales('_locale').notNull() baseExtraConfig._parentPathOrderLocale = (cols) => - unique().on(cols._parentID, cols._path, cols._order, cols._locale) + unique(`${blockTableName}_parent_id_path_order_locale_unique`).on( + cols._parentID, + cols._path, + cols._order, + cols._locale, + ) } else { baseExtraConfig._parentPathOrder = (cols) => - unique().on(cols._parentID, cols._path, cols._order) + unique(`${blockTableName}_parent_id_path_order_unique`).on( + cols._parentID, + cols._path, + cols._order, + ) } const { relationsToBuild: subRelationsToBuild } = buildTable({