@payloadcms/drizzle 3.17.1 → 3.18.0-canary.030d28e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/package.json +3 -3
  2. package/dist/postgres/createMigration.d.ts +0 -3
  3. package/dist/postgres/createMigration.d.ts.map +0 -1
  4. package/dist/postgres/createMigration.js +0 -91
  5. package/dist/postgres/createMigration.js.map +0 -1
  6. package/dist/postgres/getMigrationTemplate.d.ts +0 -4
  7. package/dist/postgres/getMigrationTemplate.d.ts.map +0 -1
  8. package/dist/postgres/getMigrationTemplate.js +0 -13
  9. package/dist/postgres/getMigrationTemplate.js.map +0 -1
  10. package/dist/postgres/schema/build.d.ts +0 -42
  11. package/dist/postgres/schema/build.d.ts.map +0 -1
  12. package/dist/postgres/schema/build.js +0 -404
  13. package/dist/postgres/schema/build.js.map +0 -1
  14. package/dist/postgres/schema/createIndex.d.ts +0 -11
  15. package/dist/postgres/schema/createIndex.d.ts.map +0 -1
  16. package/dist/postgres/schema/createIndex.js +0 -20
  17. package/dist/postgres/schema/createIndex.js.map +0 -1
  18. package/dist/postgres/schema/idToUUID.d.ts +0 -3
  19. package/dist/postgres/schema/idToUUID.d.ts.map +0 -1
  20. package/dist/postgres/schema/idToUUID.js +0 -11
  21. package/dist/postgres/schema/idToUUID.js.map +0 -1
  22. package/dist/postgres/schema/parentIDColumnMap.d.ts +0 -4
  23. package/dist/postgres/schema/parentIDColumnMap.d.ts.map +0 -1
  24. package/dist/postgres/schema/parentIDColumnMap.js +0 -9
  25. package/dist/postgres/schema/parentIDColumnMap.js.map +0 -1
  26. package/dist/postgres/schema/traverseFields.d.ts +0 -42
  27. package/dist/postgres/schema/traverseFields.d.ts.map +0 -1
  28. package/dist/postgres/schema/traverseFields.js +0 -599
  29. package/dist/postgres/schema/traverseFields.js.map +0 -1
  30. package/dist/postgres/schema/withDefault.d.ts +0 -4
  31. package/dist/postgres/schema/withDefault.d.ts.map +0 -1
  32. package/dist/postgres/schema/withDefault.js +0 -15
  33. package/dist/postgres/schema/withDefault.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/postgres/schema/traverseFields.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { FlattenedField } from 'payload'\n\nimport { relations } from 'drizzle-orm'\nimport {\n boolean,\n foreignKey,\n index,\n integer,\n jsonb,\n numeric,\n PgNumericBuilder,\n PgUUIDBuilder,\n PgVarcharBuilder,\n text,\n timestamp,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, fieldIsVirtual, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n BaseExtraConfig,\n BasePostgresAdapter,\n GenericColumns,\n IDType,\n RelationMap,\n} from '../types.js'\n\nimport { createTableName } from '../../createTableName.js'\nimport { buildIndexName } from '../../utilities/buildIndexName.js'\nimport { hasLocalesTable } from '../../utilities/hasLocalesTable.js'\nimport { validateExistingBlockIsIdentical } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { geometryColumn } from './geometryColumn.js'\nimport { idToUUID } from './idToUUID.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n columnPrefix?: string\n columns: Record<string, PgColumnBuilder>\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: FlattenedField[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n localesColumns: Record<string, PgColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationships: Set<string>\n relationsToBuild: RelationMap\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: string\n rootTableName: string\n uniqueRelationships: Set<string>\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const throwValidationError = true\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof PgUUIDBuilder) {\n parentIDColType = 'uuid'\n }\n if (columns.id instanceof PgNumericBuilder) {\n parentIDColType = 'numeric'\n }\n if (columns.id instanceof PgVarcharBuilder) {\n parentIDColType = 'varchar'\n }\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') {\n return\n }\n if (fieldIsVirtual(field)) {\n return\n }\n\n let targetTable = columns\n let targetIndexes = indexes\n\n const columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n const fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index || ['relationship', 'upload'].includes(field.type)) &&\n !['array', 'blocks', 'group'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true) &&\n !('relationTo' in field && Array.isArray(field.relationTo))\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n\n const indexName = buildIndexName({ name: `${newTableName}_${columnName}`, adapter })\n\n targetIndexes[indexName] = createIndex({\n name: field.localized ? [fieldName, '_locale'] : fieldName,\n indexName,\n unique,\n })\n }\n\n switch (field.type) {\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, PgColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: parentIDColumnMap[parentIDColType]('_parent_id').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(field.flattenedFields) : field.flattenedFields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n tableName: arrayTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n\n break\n }\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, PgColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: parentIDColumnMap[rootTableIDColType]('_parent_id').notNull(),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(block.flattenedFields) : block.flattenedFields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n tableName: blockTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n case 'checkbox': {\n targetTable[fieldName] = withDefault(boolean(columnName), field)\n break\n }\n\n case 'code':\n case 'email':\n case 'textarea': {\n targetTable[fieldName] = withDefault(varchar(columnName), field)\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(\n timestamp(columnName, {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n }),\n field,\n )\n break\n }\n\n case 'group':\n case 'tab': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.flattenedFields,\n forceLocalized: field.localized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock: withinLocalizedArrayOrBlock || field.localized,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'json':\n case 'richText': {\n targetTable[fieldName] = withDefault(jsonb(columnName), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(numeric(columnName), field)\n }\n break\n }\n\n case 'point': {\n targetTable[fieldName] = withDefault(geometryColumn(columnName), field)\n if (!adapter.extensions.postgis) {\n adapter.extensions.postgis = true\n }\n break\n }\n\n case 'radio':\n case 'select': {\n const enumName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n })\n\n adapter.enums[enumName] = adapter.pgSchema.enum(\n enumName,\n field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]],\n )\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, PgColumnBuilder> = {\n order: integer('order').notNull(),\n parent: parentIDColumnMap[parentIDColType]('parent_id').notNull(),\n value: adapter.enums[enumName]('value'),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns.locale = adapter.enums.enum__locales('locale').notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = withDefault(adapter.enums[enumName](columnName), field)\n }\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => {\n relationships.add(relation)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(relation)\n }\n })\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(field.relationTo)\n }\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomID?.type === 'text') {\n colType = 'varchar'\n }\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = parentIDColumnMap[colType](`${columnName}_id`).references(\n () => adapter.tables[tableName].id,\n { onDelete: 'set null' },\n )\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && (field.localized || forceLocalized),\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n\n if (\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n ) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n case 'text': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(varchar(columnName), field)\n }\n break\n }\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["relations","boolean","foreignKey","index","integer","jsonb","numeric","PgNumericBuilder","PgUUIDBuilder","PgVarcharBuilder","text","timestamp","varchar","InvalidConfiguration","fieldAffectsData","fieldIsVirtual","optionIsObject","toSnakeCase","createTableName","buildIndexName","hasLocalesTable","validateExistingBlockIsIdentical","buildTable","createIndex","geometryColumn","idToUUID","parentIDColumnMap","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableRelsTableUnique","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentTableName","relationships","relationsToBuild","rootRelationsToBuild","rootTableIDColType","rootTableName","uniqueRelationships","versions","withinLocalizedArrayOrBlock","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","targetTable","targetIndexes","columnName","fieldName","replace","payload","config","localization","localized","type","hasMany","unique","includes","Array","isArray","relationTo","constraintValue","fieldConstraints","indexName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","prefix","versionsCustomName","baseColumns","_order","notNull","_parentID","baseExtraConfig","_orderIdx","cols","on","_parentIDFk","foreignColumns","tables","onDelete","_parentIDIdx","isLocalized","_locale","enums","enum__locales","_localeIdx","subHasLocalizedManyNumberField","subHasLocalizedManyTextField","subHasLocalizedRelationshipField","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","flattenedFields","rootRelationships","rootUniqueRelationships","tableName","set","target","many","one","result","references","relationName","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","mode","precision","withTimezone","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","extensions","postgis","enumName","pgSchema","enum","options","map","option","value","selectTableName","order","parent","orderIdx","parentFk","parentIdx","locale","localeIdx","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","required"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { PgColumnBuilder } from 'drizzle-orm/pg-core';
2
- import type { FieldAffectingData } from 'payload';
3
- export declare const withDefault: (column: PgColumnBuilder, field: FieldAffectingData) => PgColumnBuilder;
4
- //# sourceMappingURL=withDefault.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/withDefault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,WAAW,WACd,eAAe,SAChB,kBAAkB,KACxB,eAeF,CAAA"}
@@ -1,15 +0,0 @@
1
- export const withDefault = (column, field)=>{
2
- if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {
3
- return column;
4
- }
5
- if (typeof field.defaultValue === 'string' && field.defaultValue.includes("'")) {
6
- const escapedString = field.defaultValue.replaceAll("'", "''");
7
- return column.default(escapedString);
8
- }
9
- if (field.type === 'point' && Array.isArray(field.defaultValue)) {
10
- return column.default(`SRID=4326;POINT(${field.defaultValue[0]} ${field.defaultValue[1]})`);
11
- }
12
- return column.default(field.defaultValue);
13
- };
14
-
15
- //# sourceMappingURL=withDefault.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/postgres/schema/withDefault.ts"],"sourcesContent":["import type { PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { FieldAffectingData } from 'payload'\n\nexport const withDefault = (\n column: PgColumnBuilder,\n field: FieldAffectingData,\n): PgColumnBuilder => {\n if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {\n return column\n }\n\n if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n if (field.type === 'point' && Array.isArray(field.defaultValue)) {\n return column.default(`SRID=4326;POINT(${field.defaultValue[0]} ${field.defaultValue[1]})`)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default","type","Array","isArray"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAAY;QACzF,OAAOF;IACT;IAEA,IAAI,OAAOC,MAAMC,YAAY,KAAK,YAAYD,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM;QAC9E,MAAMC,gBAAgBH,MAAMC,YAAY,CAACG,UAAU,CAAC,KAAK;QACzD,OAAOL,OAAOM,OAAO,CAACF;IACxB;IAEA,IAAIH,MAAMM,IAAI,KAAK,WAAWC,MAAMC,OAAO,CAACR,MAAMC,YAAY,GAAG;QAC/D,OAAOF,OAAOM,OAAO,CAAC,CAAC,gBAAgB,EAAEL,MAAMC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAED,MAAMC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F;IAEA,OAAOF,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}