chore(db-postgres): add name to all unique constraints

This commit is contained in:
Dan Ribbens
2023-10-04 11:48:45 -04:00
parent 825f9521bb
commit 394c2bc23a
2 changed files with 35 additions and 21 deletions

View File

@@ -157,7 +157,10 @@ export const buildTable = ({
return acc 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) { if (hasLocalizedRelationshipField) {
result.localeIdx = index('locale_idx').on(cols.locale) result.localeIdx = index('locale_idx').on(cols.locale)
result.parentPathOrderLocale = unique('parent_id_path_order_locale_unique').on( result.parentPathOrderLocale = unique(
cols.parent, `${relationshipsTableName}_parent_id_path_order_locale_unique`,
cols.path, ).on(cols.parent, cols.path, cols.order, cols.locale)
cols.order,
cols.locale,
)
} else { } else {
result.parentPathOrder = unique('parent_id_path_order_unique').on( result.parentPathOrder = unique(
cols.parent, `${relationshipsTableName}_parent_id_path_order_unique`,
cols.path, ).on(cols.parent, cols.path, cols.order)
cols.order,
)
} }
return result return result

View File

@@ -189,6 +189,7 @@ export const traverseFields = ({
) )
if (field.type === 'select' && field.hasMany) { if (field.type === 'select' && field.hasMany) {
const selectTableName = `${newTableName}_${toSnakeCase(fieldName)}`
const baseColumns: Record<string, PgColumnBuilder> = { const baseColumns: Record<string, PgColumnBuilder> = {
order: integer('order').notNull(), order: integer('order').notNull(),
parent: parentIDColumnMap[parentIDColType]('parent_id') parent: parentIDColumnMap[parentIDColType]('parent_id')
@@ -205,7 +206,11 @@ export const traverseFields = ({
if (field.localized) { if (field.localized) {
baseColumns.locale = adapter.enums.enum__locales('locale').notNull() baseColumns.locale = adapter.enums.enum__locales('locale').notNull()
baseExtraConfig.parentOrderLocale = (cols) => 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 { } else {
baseExtraConfig.parent = (cols) => index('parent_idx').on(cols.parent) baseExtraConfig.parent = (cols) => index('parent_idx').on(cols.parent)
baseExtraConfig.order = (cols) => index('order_idx').on(cols.order) 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) baseExtraConfig.value = (cols) => index('value_idx').on(cols.value)
} }
const selectTableName = `${newTableName}_${toSnakeCase(fieldName)}`
buildTable({ buildTable({
adapter, adapter,
baseColumns, baseColumns,
@@ -252,6 +255,7 @@ export const traverseFields = ({
} }
case 'array': { case 'array': {
const arrayTableName = `${newTableName}_${toSnakeCase(field.name)}`
const baseColumns: Record<string, PgColumnBuilder> = { const baseColumns: Record<string, PgColumnBuilder> = {
_order: integer('_order').notNull(), _order: integer('_order').notNull(),
_parentID: parentIDColumnMap[parentIDColType]('_parent_id') _parentID: parentIDColumnMap[parentIDColType]('_parent_id')
@@ -267,13 +271,16 @@ export const traverseFields = ({
if (field.localized && adapter.payload.config.localization) { if (field.localized && adapter.payload.config.localization) {
baseColumns._locale = adapter.enums.enum__locales('_locale').notNull() baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()
baseExtraConfig._parentOrderLocale = (cols) => 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 { } 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({ const { relationsToBuild: subRelationsToBuild } = buildTable({
adapter, adapter,
baseColumns, baseColumns,
@@ -332,10 +339,19 @@ export const traverseFields = ({
if (field.localized && adapter.payload.config.localization) { if (field.localized && adapter.payload.config.localization) {
baseColumns._locale = adapter.enums.enum__locales('_locale').notNull() baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()
baseExtraConfig._parentPathOrderLocale = (cols) => 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 { } else {
baseExtraConfig._parentPathOrder = (cols) => 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({ const { relationsToBuild: subRelationsToBuild } = buildTable({