@payloadcms/db-postgres 3.0.0-beta.71 → 3.0.0-beta.73

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,SAAS,CAAA;AA6C/C,eAAO,MAAM,OAAO,EAAE,OA8CrB,CAAA"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,SAAS,CAAA;AA6C/C,eAAO,MAAM,OAAO,EAAE,OA+CrB,CAAA"}
package/dist/connect.js CHANGED
@@ -41,6 +41,7 @@ export const connect = async function connect(options = {
41
41
  }) {
42
42
  const { hotReload } = options;
43
43
  this.schema = {
44
+ pgSchema: this.pgSchema,
44
45
  ...this.tables,
45
46
  ...this.relations,
46
47
  ...this.enums
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Connect, Payload } from 'payload'\n\nimport { pushDevSchema } from '@payloadcms/drizzle'\nimport { drizzle } from 'drizzle-orm/node-postgres'\nimport pg from 'pg'\n\nimport type { PostgresAdapter } from './types.js'\n\nconst connectWithReconnect = async function ({\n adapter,\n payload,\n reconnect = false,\n}: {\n adapter: PostgresAdapter\n payload: Payload\n reconnect?: boolean\n}) {\n let result\n\n if (!reconnect) {\n result = await adapter.pool.connect()\n } else {\n try {\n result = await adapter.pool.connect()\n } catch (err) {\n setTimeout(() => {\n payload.logger.info('Reconnecting to postgres')\n void connectWithReconnect({ adapter, payload, reconnect: true })\n }, 1000)\n }\n }\n if (!result) {\n return\n }\n result.prependListener('error', (err) => {\n try {\n if (err.code === 'ECONNRESET') {\n void connectWithReconnect({ adapter, payload, reconnect: true })\n }\n } catch (err) {\n // swallow error\n }\n })\n}\n\nexport const connect: Connect = async function connect(\n this: PostgresAdapter,\n options = {\n hotReload: false,\n },\n) {\n const { hotReload } = options\n\n this.schema = {\n ...this.tables,\n ...this.relations,\n ...this.enums,\n }\n\n try {\n if (!this.pool) {\n this.pool = new pg.Pool(this.poolOptions)\n await connectWithReconnect({ adapter: this, payload: this.payload })\n }\n\n const logger = this.logger || false\n this.drizzle = drizzle(this.pool, { logger, schema: this.schema })\n\n if (!hotReload) {\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n this.payload.logger.info(`---- DROPPING TABLES SCHEMA(${this.schemaName || 'public'}) ----`)\n await this.dropDatabase({ adapter: this })\n this.payload.logger.info('---- DROPPED TABLES ----')\n }\n }\n } catch (err) {\n this.payload.logger.error(`Error: cannot connect to Postgres. Details: ${err.message}`, err)\n if (typeof this.rejectInitializing === 'function') this.rejectInitializing()\n process.exit(1)\n }\n\n // Only push schema if not in production\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_MIGRATING !== 'true' &&\n this.push !== false\n ) {\n await pushDevSchema(this as unknown as DrizzleAdapter)\n }\n\n if (typeof this.resolveInitializing === 'function') this.resolveInitializing()\n}\n"],"names":["pushDevSchema","drizzle","pg","connectWithReconnect","adapter","payload","reconnect","result","pool","connect","err","setTimeout","logger","info","prependListener","code","options","hotReload","schema","tables","relations","enums","Pool","poolOptions","process","env","PAYLOAD_DROP_DATABASE","schemaName","dropDatabase","error","message","rejectInitializing","exit","NODE_ENV","PAYLOAD_MIGRATING","push","resolveInitializing"],"mappings":"AAGA,SAASA,aAAa,QAAQ,sBAAqB;AACnD,SAASC,OAAO,QAAQ,4BAA2B;AACnD,OAAOC,QAAQ,KAAI;AAInB,MAAMC,uBAAuB,eAAgB,EAC3CC,OAAO,EACPC,OAAO,EACPC,YAAY,KAAK,EAKlB;IACC,IAAIC;IAEJ,IAAI,CAACD,WAAW;QACdC,SAAS,MAAMH,QAAQI,IAAI,CAACC,OAAO;IACrC,OAAO;QACL,IAAI;YACFF,SAAS,MAAMH,QAAQI,IAAI,CAACC,OAAO;QACrC,EAAE,OAAOC,KAAK;YACZC,WAAW;gBACTN,QAAQO,MAAM,CAACC,IAAI,CAAC;gBACpB,KAAKV,qBAAqB;oBAAEC;oBAASC;oBAASC,WAAW;gBAAK;YAChE,GAAG;QACL;IACF;IACA,IAAI,CAACC,QAAQ;QACX;IACF;IACAA,OAAOO,eAAe,CAAC,SAAS,CAACJ;QAC/B,IAAI;YACF,IAAIA,IAAIK,IAAI,KAAK,cAAc;gBAC7B,KAAKZ,qBAAqB;oBAAEC;oBAASC;oBAASC,WAAW;gBAAK;YAChE;QACF,EAAE,OAAOI,KAAK;QACZ,gBAAgB;QAClB;IACF;AACF;AAEA,OAAO,MAAMD,UAAmB,eAAeA,QAE7CO,UAAU;IACRC,WAAW;AACb,CAAC;IAED,MAAM,EAAEA,SAAS,EAAE,GAAGD;IAEtB,IAAI,CAACE,MAAM,GAAG;QACZ,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;QACjB,GAAG,IAAI,CAACC,KAAK;IACf;IAEA,IAAI;QACF,IAAI,CAAC,IAAI,CAACb,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAG,IAAIN,GAAGoB,IAAI,CAAC,IAAI,CAACC,WAAW;YACxC,MAAMpB,qBAAqB;gBAAEC,SAAS,IAAI;gBAAEC,SAAS,IAAI,CAACA,OAAO;YAAC;QACpE;QAEA,MAAMO,SAAS,IAAI,CAACA,MAAM,IAAI;QAC9B,IAAI,CAACX,OAAO,GAAGA,QAAQ,IAAI,CAACO,IAAI,EAAE;YAAEI;YAAQM,QAAQ,IAAI,CAACA,MAAM;QAAC;QAEhE,IAAI,CAACD,WAAW;YACd,IAAIO,QAAQC,GAAG,CAACC,qBAAqB,KAAK,QAAQ;gBAChD,IAAI,CAACrB,OAAO,CAACO,MAAM,CAACC,IAAI,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAACc,UAAU,IAAI,SAAS,MAAM,CAAC;gBAC3F,MAAM,IAAI,CAACC,YAAY,CAAC;oBAAExB,SAAS,IAAI;gBAAC;gBACxC,IAAI,CAACC,OAAO,CAACO,MAAM,CAACC,IAAI,CAAC;YAC3B;QACF;IACF,EAAE,OAAOH,KAAK;QACZ,IAAI,CAACL,OAAO,CAACO,MAAM,CAACiB,KAAK,CAAC,CAAC,4CAA4C,EAAEnB,IAAIoB,OAAO,CAAC,CAAC,EAAEpB;QACxF,IAAI,OAAO,IAAI,CAACqB,kBAAkB,KAAK,YAAY,IAAI,CAACA,kBAAkB;QAC1EP,QAAQQ,IAAI,CAAC;IACf;IAEA,wCAAwC;IACxC,IACER,QAAQC,GAAG,CAACQ,QAAQ,KAAK,gBACzBT,QAAQC,GAAG,CAACS,iBAAiB,KAAK,UAClC,IAAI,CAACC,IAAI,KAAK,OACd;QACA,MAAMnC,cAAc,IAAI;IAC1B;IAEA,IAAI,OAAO,IAAI,CAACoC,mBAAmB,KAAK,YAAY,IAAI,CAACA,mBAAmB;AAC9E,EAAC"}
1
+ {"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Connect, Payload } from 'payload'\n\nimport { pushDevSchema } from '@payloadcms/drizzle'\nimport { drizzle } from 'drizzle-orm/node-postgres'\nimport pg from 'pg'\n\nimport type { PostgresAdapter } from './types.js'\n\nconst connectWithReconnect = async function ({\n adapter,\n payload,\n reconnect = false,\n}: {\n adapter: PostgresAdapter\n payload: Payload\n reconnect?: boolean\n}) {\n let result\n\n if (!reconnect) {\n result = await adapter.pool.connect()\n } else {\n try {\n result = await adapter.pool.connect()\n } catch (err) {\n setTimeout(() => {\n payload.logger.info('Reconnecting to postgres')\n void connectWithReconnect({ adapter, payload, reconnect: true })\n }, 1000)\n }\n }\n if (!result) {\n return\n }\n result.prependListener('error', (err) => {\n try {\n if (err.code === 'ECONNRESET') {\n void connectWithReconnect({ adapter, payload, reconnect: true })\n }\n } catch (err) {\n // swallow error\n }\n })\n}\n\nexport const connect: Connect = async function connect(\n this: PostgresAdapter,\n options = {\n hotReload: false,\n },\n) {\n const { hotReload } = options\n\n this.schema = {\n pgSchema: this.pgSchema,\n ...this.tables,\n ...this.relations,\n ...this.enums,\n }\n\n try {\n if (!this.pool) {\n this.pool = new pg.Pool(this.poolOptions)\n await connectWithReconnect({ adapter: this, payload: this.payload })\n }\n\n const logger = this.logger || false\n this.drizzle = drizzle(this.pool, { logger, schema: this.schema })\n\n if (!hotReload) {\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n this.payload.logger.info(`---- DROPPING TABLES SCHEMA(${this.schemaName || 'public'}) ----`)\n await this.dropDatabase({ adapter: this })\n this.payload.logger.info('---- DROPPED TABLES ----')\n }\n }\n } catch (err) {\n this.payload.logger.error(`Error: cannot connect to Postgres. Details: ${err.message}`, err)\n if (typeof this.rejectInitializing === 'function') this.rejectInitializing()\n process.exit(1)\n }\n\n // Only push schema if not in production\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_MIGRATING !== 'true' &&\n this.push !== false\n ) {\n await pushDevSchema(this as unknown as DrizzleAdapter)\n }\n\n if (typeof this.resolveInitializing === 'function') this.resolveInitializing()\n}\n"],"names":["pushDevSchema","drizzle","pg","connectWithReconnect","adapter","payload","reconnect","result","pool","connect","err","setTimeout","logger","info","prependListener","code","options","hotReload","schema","pgSchema","tables","relations","enums","Pool","poolOptions","process","env","PAYLOAD_DROP_DATABASE","schemaName","dropDatabase","error","message","rejectInitializing","exit","NODE_ENV","PAYLOAD_MIGRATING","push","resolveInitializing"],"mappings":"AAGA,SAASA,aAAa,QAAQ,sBAAqB;AACnD,SAASC,OAAO,QAAQ,4BAA2B;AACnD,OAAOC,QAAQ,KAAI;AAInB,MAAMC,uBAAuB,eAAgB,EAC3CC,OAAO,EACPC,OAAO,EACPC,YAAY,KAAK,EAKlB;IACC,IAAIC;IAEJ,IAAI,CAACD,WAAW;QACdC,SAAS,MAAMH,QAAQI,IAAI,CAACC,OAAO;IACrC,OAAO;QACL,IAAI;YACFF,SAAS,MAAMH,QAAQI,IAAI,CAACC,OAAO;QACrC,EAAE,OAAOC,KAAK;YACZC,WAAW;gBACTN,QAAQO,MAAM,CAACC,IAAI,CAAC;gBACpB,KAAKV,qBAAqB;oBAAEC;oBAASC;oBAASC,WAAW;gBAAK;YAChE,GAAG;QACL;IACF;IACA,IAAI,CAACC,QAAQ;QACX;IACF;IACAA,OAAOO,eAAe,CAAC,SAAS,CAACJ;QAC/B,IAAI;YACF,IAAIA,IAAIK,IAAI,KAAK,cAAc;gBAC7B,KAAKZ,qBAAqB;oBAAEC;oBAASC;oBAASC,WAAW;gBAAK;YAChE;QACF,EAAE,OAAOI,KAAK;QACZ,gBAAgB;QAClB;IACF;AACF;AAEA,OAAO,MAAMD,UAAmB,eAAeA,QAE7CO,UAAU;IACRC,WAAW;AACb,CAAC;IAED,MAAM,EAAEA,SAAS,EAAE,GAAGD;IAEtB,IAAI,CAACE,MAAM,GAAG;QACZC,UAAU,IAAI,CAACA,QAAQ;QACvB,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;QACjB,GAAG,IAAI,CAACC,KAAK;IACf;IAEA,IAAI;QACF,IAAI,CAAC,IAAI,CAACd,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAG,IAAIN,GAAGqB,IAAI,CAAC,IAAI,CAACC,WAAW;YACxC,MAAMrB,qBAAqB;gBAAEC,SAAS,IAAI;gBAAEC,SAAS,IAAI,CAACA,OAAO;YAAC;QACpE;QAEA,MAAMO,SAAS,IAAI,CAACA,MAAM,IAAI;QAC9B,IAAI,CAACX,OAAO,GAAGA,QAAQ,IAAI,CAACO,IAAI,EAAE;YAAEI;YAAQM,QAAQ,IAAI,CAACA,MAAM;QAAC;QAEhE,IAAI,CAACD,WAAW;YACd,IAAIQ,QAAQC,GAAG,CAACC,qBAAqB,KAAK,QAAQ;gBAChD,IAAI,CAACtB,OAAO,CAACO,MAAM,CAACC,IAAI,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAACe,UAAU,IAAI,SAAS,MAAM,CAAC;gBAC3F,MAAM,IAAI,CAACC,YAAY,CAAC;oBAAEzB,SAAS,IAAI;gBAAC;gBACxC,IAAI,CAACC,OAAO,CAACO,MAAM,CAACC,IAAI,CAAC;YAC3B;QACF;IACF,EAAE,OAAOH,KAAK;QACZ,IAAI,CAACL,OAAO,CAACO,MAAM,CAACkB,KAAK,CAAC,CAAC,4CAA4C,EAAEpB,IAAIqB,OAAO,CAAC,CAAC,EAAErB;QACxF,IAAI,OAAO,IAAI,CAACsB,kBAAkB,KAAK,YAAY,IAAI,CAACA,kBAAkB;QAC1EP,QAAQQ,IAAI,CAAC;IACf;IAEA,wCAAwC;IACxC,IACER,QAAQC,GAAG,CAACQ,QAAQ,KAAK,gBACzBT,QAAQC,GAAG,CAACS,iBAAiB,KAAK,UAClC,IAAI,CAACC,IAAI,KAAK,OACd;QACA,MAAMpC,cAAc,IAAI;IAC1B;IAEA,IAAI,OAAO,IAAI,CAACqC,mBAAmB,KAAK,YAAY,IAAI,CAACA,mBAAmB;AAC9E,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgB9C,eAAO,MAAM,eAAe,EAAE,eA6F7B,CAAA"}
1
+ {"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgB9C,eAAO,MAAM,eAAe,EAAE,eAmG7B,CAAA"}
@@ -33,6 +33,11 @@ export const createMigration = async function createMigration({ file, forceAccep
33
33
  const fileName = `${timestamp}${name ? `_${name.replace(/\W/g, '_')}` : ''}`;
34
34
  const filePath = `${dir}/${fileName}`;
35
35
  let drizzleJsonBefore = defaultDrizzleSnapshot;
36
+ if (this.schemaName) {
37
+ drizzleJsonBefore.schemas = {
38
+ [this.schemaName]: this.schemaName
39
+ };
40
+ }
36
41
  if (!upSQL) {
37
42
  // Get latest migration snapshot
38
43
  const latestSnapshot = fs.readdirSync(dir).filter((file)=>file.endsWith('.json')).sort().reverse()?.[0];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport path from 'path'\nimport { getPredefinedMigration } from 'payload'\nimport prompts from 'prompts'\nimport { fileURLToPath } from 'url'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const createMigration: CreateMigration = async function createMigration(\n this: PostgresAdapter,\n { file, forceAcceptWarning, migrationName, payload },\n) {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n const { generateDrizzleJson, generateMigration } = require('drizzle-kit/payload')\n const drizzleJsonAfter = generateDrizzleJson(this.schema)\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = defaultDrizzleSnapshot\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n }\n\n const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore)\n const sqlExecute = 'await payload.db.drizzle.execute(sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = `${sqlExecute}\\n ${sqlStatementsUp?.join('\\n')}\\`)`\n }\n if (sqlStatementsDown?.length) {\n downSQL = `${sqlExecute}\\n ${sqlStatementsDown?.join('\\n')}\\`)`\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n // write migration\n fs.writeFileSync(\n `${filePath}.ts`,\n getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n upSQL: upSQL || ` // Migration code`,\n }),\n )\n payload.logger.info({ msg: `Migration created at ${filePath}.ts` })\n}\n"],"names":["fs","createRequire","path","getPredefinedMigration","prompts","fileURLToPath","defaultDrizzleSnapshot","getMigrationTemplate","require","url","createMigration","file","forceAcceptWarning","migrationName","payload","filename","dirname","dir","db","migrationDir","existsSync","mkdirSync","generateDrizzleJson","generateMigration","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","process","exit","writeFileSync","stringify","logger","info","msg"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/createMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport path from 'path'\nimport { getPredefinedMigration } from 'payload'\nimport prompts from 'prompts'\nimport { fileURLToPath } from 'url'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const createMigration: CreateMigration = async function createMigration(\n this: PostgresAdapter,\n { file, forceAcceptWarning, migrationName, payload },\n) {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n const { generateDrizzleJson, generateMigration } = require('drizzle-kit/payload')\n const drizzleJsonAfter = generateDrizzleJson(this.schema)\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = defaultDrizzleSnapshot\n\n if (this.schemaName) {\n drizzleJsonBefore.schemas = {\n [this.schemaName]: this.schemaName,\n }\n }\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n }\n\n const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore)\n const sqlExecute = 'await payload.db.drizzle.execute(sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = `${sqlExecute}\\n ${sqlStatementsUp?.join('\\n')}\\`)`\n }\n if (sqlStatementsDown?.length) {\n downSQL = `${sqlExecute}\\n ${sqlStatementsDown?.join('\\n')}\\`)`\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n // write migration\n fs.writeFileSync(\n `${filePath}.ts`,\n getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n upSQL: upSQL || ` // Migration code`,\n }),\n )\n payload.logger.info({ msg: `Migration created at ${filePath}.ts` })\n}\n"],"names":["fs","createRequire","path","getPredefinedMigration","prompts","fileURLToPath","defaultDrizzleSnapshot","getMigrationTemplate","require","url","createMigration","file","forceAcceptWarning","migrationName","payload","filename","dirname","dir","db","migrationDir","existsSync","mkdirSync","generateDrizzleJson","generateMigration","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","schemaName","schemas","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","process","exit","writeFileSync","stringify","logger","info","msg"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../src/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,sBAAsB,EAAE,mBAapC,CAAA"}
1
+ {"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../src/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,sBAAsB,EAAE,mBAcpC,CAAA"}
@@ -5,12 +5,13 @@ export const defaultDrizzleSnapshot = {
5
5
  schemas: {},
6
6
  tables: {}
7
7
  },
8
- dialect: 'pg',
8
+ dialect: 'postgresql',
9
9
  enums: {},
10
10
  prevId: '00000000-0000-0000-0000-00000000000',
11
11
  schemas: {},
12
+ sequences: {},
12
13
  tables: {},
13
- version: '5'
14
+ version: '7'
14
15
  };
15
16
 
16
17
  //# sourceMappingURL=defaultSnapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaultSnapshot.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\n\nexport const defaultDrizzleSnapshot: DrizzleSnapshotJSON = {\n id: '00000000-0000-0000-0000-000000000000',\n _meta: {\n columns: {},\n schemas: {},\n tables: {},\n },\n dialect: 'pg',\n enums: {},\n prevId: '00000000-0000-0000-0000-00000000000',\n schemas: {},\n tables: {},\n version: '5',\n}\n"],"names":["defaultDrizzleSnapshot","id","_meta","columns","schemas","tables","dialect","enums","prevId","version"],"mappings":"AAEA,OAAO,MAAMA,yBAA8C;IACzDC,IAAI;IACJC,OAAO;QACLC,SAAS,CAAC;QACVC,SAAS,CAAC;QACVC,QAAQ,CAAC;IACX;IACAC,SAAS;IACTC,OAAO,CAAC;IACRC,QAAQ;IACRJ,SAAS,CAAC;IACVC,QAAQ,CAAC;IACTI,SAAS;AACX,EAAC"}
1
+ {"version":3,"sources":["../src/defaultSnapshot.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\n\nexport const defaultDrizzleSnapshot: DrizzleSnapshotJSON = {\n id: '00000000-0000-0000-0000-000000000000',\n _meta: {\n columns: {},\n schemas: {},\n tables: {},\n },\n dialect: 'postgresql',\n enums: {},\n prevId: '00000000-0000-0000-0000-00000000000',\n schemas: {},\n sequences: {},\n tables: {},\n version: '7',\n}\n"],"names":["defaultDrizzleSnapshot","id","_meta","columns","schemas","tables","dialect","enums","prevId","sequences","version"],"mappings":"AAEA,OAAO,MAAMA,yBAA8C;IACzDC,IAAI;IACJC,OAAO;QACLC,SAAS,CAAC;QACVC,SAAS,CAAC;QACVC,QAAQ,CAAC;IACX;IACAC,SAAS;IACTC,OAAO,CAAC;IACRC,QAAQ;IACRJ,SAAS,CAAC;IACVK,WAAW,CAAC;IACZJ,QAAQ,CAAC;IACTK,SAAS;AACX,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AAoC1D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAgBvD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,eAAe,CAAC,CA+F/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AAqC1D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAgBvD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAsG/E"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { beginTransaction, commitTransaction, count, create, createGlobal, createGlobalVersion, createVersion, deleteMany, deleteOne, deleteVersions, destroy, find, findGlobal, findGlobalVersions, findMigrationDir, findOne, findVersions, migrate, migrateDown, migrateFresh, migrateRefresh, migrateReset, migrateStatus, operatorMap, queryDrafts, rollbackTransaction, updateGlobal, updateGlobalVersion, updateOne, updateVersion } from '@payloadcms/drizzle';
2
+ import { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core';
2
3
  import { createDatabaseAdapter } from 'payload';
3
4
  import { connect } from './connect.js';
4
5
  import { countDistinct } from './countDistinct.js';
@@ -21,10 +22,19 @@ export function postgresAdapter(args) {
21
22
  const migrationDir = findMigrationDir(args.migrationDir);
22
23
  let resolveInitializing;
23
24
  let rejectInitializing;
25
+ let adapterSchema;
24
26
  const initializing = new Promise((res, rej)=>{
25
27
  resolveInitializing = res;
26
28
  rejectInitializing = rej;
27
29
  });
30
+ if (args.schemaName) {
31
+ adapterSchema = pgSchema(args.schemaName);
32
+ } else {
33
+ adapterSchema = {
34
+ enum: pgEnum,
35
+ table: pgTable
36
+ };
37
+ }
28
38
  return createDatabaseAdapter({
29
39
  name: 'postgres',
30
40
  defaultDrizzleSnapshot,
@@ -40,7 +50,7 @@ export function postgresAdapter(args) {
40
50
  localesSuffix: args.localesSuffix || '_locales',
41
51
  logger: args.logger,
42
52
  operators: operatorMap,
43
- pgSchema: undefined,
53
+ pgSchema: adapterSchema,
44
54
  pool: undefined,
45
55
  poolOptions: args.pool,
46
56
  push: args.push,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n commitTransaction,\n count,\n create,\n createGlobal,\n createGlobalVersion,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { Args, PostgresAdapter } from './types.js'\n\nimport { connect } from './connect.js'\nimport { countDistinct } from './countDistinct.js'\nimport { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js'\nimport { createJSONQuery } from './createJSONQuery/index.js'\nimport { createMigration } from './createMigration.js'\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { deleteWhere } from './deleteWhere.js'\nimport { dropDatabase } from './dropDatabase.js'\nimport { execute } from './execute.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\nimport { init } from './init.js'\nimport { insert } from './insert.js'\nimport { requireDrizzleKit } from './requireDrizzleKit.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nexport function postgresAdapter(args: Args): DatabaseAdapterObj<PostgresAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing\n let rejectInitializing\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n return createDatabaseAdapter<PostgresAdapter>({\n name: 'postgres',\n defaultDrizzleSnapshot,\n drizzle: undefined,\n enums: {},\n features: {\n json: true,\n },\n fieldConstraints: {},\n getMigrationTemplate,\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators: operatorMap,\n pgSchema: undefined,\n pool: undefined,\n poolOptions: args.pool,\n push: args.push,\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n transactionOptions: args.transactionOptions || undefined,\n versionsSuffix: args.versionsSuffix || '_v',\n\n // DatabaseAdapter\n beginTransaction: args.transactionOptions === false ? undefined : beginTransaction,\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration,\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n payload,\n queryDrafts,\n rejectInitializing,\n requireDrizzleKit,\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","commitTransaction","count","create","createGlobal","createGlobalVersion","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","createDatabaseAdapter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","createMigration","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","getMigrationTemplate","init","insert","requireDrizzleKit","sql","postgresAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","name","drizzle","undefined","enums","features","json","fieldConstraints","localesSuffix","logger","operators","pgSchema","pool","poolOptions","push","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","defaultIDType"],"mappings":"AAEA,SACEA,gBAAgB,EAChBC,iBAAiB,EACjBC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,mBAAmB,EACnBC,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,cAAc,EACdC,OAAO,EACPC,IAAI,EACJC,UAAU,EACVC,kBAAkB,EAClBC,gBAAgB,EAChBC,OAAO,EACPC,YAAY,EACZC,OAAO,EACPC,WAAW,EACXC,YAAY,EACZC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,mBAAmB,EACnBC,YAAY,EACZC,mBAAmB,EACnBC,SAAS,EACTC,aAAa,QACR,sBAAqB;AAC5B,SAASC,qBAAqB,QAAQ,UAAS;AAI/C,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,0BAA0B,QAAQ,kDAAiD;AAC5F,SAASC,eAAe,QAAQ,6BAA4B;AAC5D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,sBAAsB,QAAQ,uBAAsB;AAC7D,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,iBAAiB,QAAQ,yBAAwB;AAI1D,SAASC,GAAG,QAAQ,cAAa;AAEjC,OAAO,SAASC,gBAAgBC,IAAU;IACxC,MAAMC,iBAAiBD,KAAKE,MAAM,IAAI;IACtC,MAAMC,gBAAgBF,mBAAmB,WAAW,WAAW;IAE/D,SAASG,QAAQ,EAAEC,OAAO,EAAwB;QAChD,MAAMC,eAAetC,iBAAiBgC,KAAKM,YAAY;QACvD,IAAIC;QACJ,IAAIC;QAEJ,MAAMC,eAAe,IAAIC,QAAc,CAACC,KAAKC;YAC3CL,sBAAsBI;YACtBH,qBAAqBI;QACvB;QAEA,OAAO5B,sBAAuC;YAC5C6B,MAAM;YACNvB;YACAwB,SAASC;YACTC,OAAO,CAAC;YACRC,UAAU;gBACRC,MAAM;YACR;YACAC,kBAAkB,CAAC;YACnBzB;YACAQ,QAAQD;YACRQ;YACAW,eAAepB,KAAKoB,aAAa,IAAI;YACrCC,QAAQrB,KAAKqB,MAAM;YACnBC,WAAW7C;YACX8C,UAAUR;YACVS,MAAMT;YACNU,aAAazB,KAAKwB,IAAI;YACtBE,MAAM1B,KAAK0B,IAAI;YACfC,WAAW,CAAC;YACZC,qBAAqB5B,KAAK4B,mBAAmB,IAAI;YACjDC,QAAQ,CAAC;YACTC,YAAY9B,KAAK8B,UAAU;YAC3BC,UAAU,CAAC;YACXC,cAAc,IAAIC;YAClBC,QAAQ,CAAC;YACTC,oBAAoBnC,KAAKmC,kBAAkB,IAAIpB;YAC/CqB,gBAAgBpC,KAAKoC,cAAc,IAAI;YAEvC,kBAAkB;YAClBlF,kBAAkB8C,KAAKmC,kBAAkB,KAAK,QAAQpB,YAAY7D;YAClEC;YACA8B;YACAE;YACA/B;YACA8B;YACA7B;YACAC;YACAC;YACA6B;YACAC;YACA7B;YACA6E,eAAelC;YACf1C;YACAC;YACAC;YACA4B;YACA3B;YACA4B;YACAC;YACA5B;YACAC;YACAC;YACAE;YACAC;YACAyB;YACAC;YACAzB;YACAC;YACAC;YACAC;YACAC;YACAC;YACA8B;YACAD;YACA3B;YACA8B;YACAX;YACAU;YACA5B;YACAC;YACAC;YACAC;YACAC;QACF;IACF;IAEA,OAAO;QACLsD,eAAelC;QACfR,MAAMS;IACR;AACF"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n commitTransaction,\n count,\n create,\n createGlobal,\n createGlobalVersion,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { type PgSchema, pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { Args, PostgresAdapter } from './types.js'\n\nimport { connect } from './connect.js'\nimport { countDistinct } from './countDistinct.js'\nimport { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js'\nimport { createJSONQuery } from './createJSONQuery/index.js'\nimport { createMigration } from './createMigration.js'\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { deleteWhere } from './deleteWhere.js'\nimport { dropDatabase } from './dropDatabase.js'\nimport { execute } from './execute.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\nimport { init } from './init.js'\nimport { insert } from './insert.js'\nimport { requireDrizzleKit } from './requireDrizzleKit.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nexport function postgresAdapter(args: Args): DatabaseAdapterObj<PostgresAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing\n let rejectInitializing\n let adapterSchema: PostgresAdapter['pgSchema']\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n if (args.schemaName) {\n adapterSchema = pgSchema(args.schemaName)\n } else {\n adapterSchema = { enum: pgEnum, table: pgTable }\n }\n\n return createDatabaseAdapter<PostgresAdapter>({\n name: 'postgres',\n defaultDrizzleSnapshot,\n drizzle: undefined,\n enums: {},\n features: {\n json: true,\n },\n fieldConstraints: {},\n getMigrationTemplate,\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators: operatorMap,\n pgSchema: adapterSchema,\n pool: undefined,\n poolOptions: args.pool,\n push: args.push,\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n transactionOptions: args.transactionOptions || undefined,\n versionsSuffix: args.versionsSuffix || '_v',\n\n // DatabaseAdapter\n beginTransaction: args.transactionOptions === false ? undefined : beginTransaction,\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration,\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n payload,\n queryDrafts,\n rejectInitializing,\n requireDrizzleKit,\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","commitTransaction","count","create","createGlobal","createGlobalVersion","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","pgEnum","pgSchema","pgTable","createDatabaseAdapter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","createMigration","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","getMigrationTemplate","init","insert","requireDrizzleKit","sql","postgresAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","adapterSchema","initializing","Promise","res","rej","schemaName","enum","table","name","drizzle","undefined","enums","features","json","fieldConstraints","localesSuffix","logger","operators","pool","poolOptions","push","relations","relationshipsSuffix","schema","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","defaultIDType"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAW9D,eAAO,MAAM,IAAI,EAAE,IA4FlB,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAU9D,eAAO,MAAM,IAAI,EAAE,IAuFlB,CAAA"}
package/dist/init.js CHANGED
@@ -1,18 +1,10 @@
1
1
  import { createTableName } from '@payloadcms/drizzle';
2
- import { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core';
3
2
  import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
4
3
  import toSnakeCase from 'to-snake-case';
5
4
  import { buildTable } from './schema/build.js';
6
5
  export const init = function init() {
7
- if (this.schemaName) {
8
- this.pgSchema = pgSchema(this.schemaName);
9
- } else {
10
- this.pgSchema = {
11
- table: pgTable
12
- };
13
- }
14
6
  if (this.payload.config.localization) {
15
- this.enums.enum__locales = pgEnum('_locales', this.payload.config.localization.locales.map(({ code })=>code));
7
+ this.enums.enum__locales = this.pgSchema.enum('_locales', this.payload.config.localization.locales.map(({ code })=>code));
16
8
  }
17
9
  this.payload.config.collections.forEach((collection)=>{
18
10
  createTableName({
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.schemaName) {\n this.pgSchema = pgSchema(this.schemaName)\n } else {\n this.pgSchema = { table: pgTable }\n }\n if (this.payload.config.localization) {\n this.enums.enum__locales = pgEnum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = this.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${this.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(collection)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({ adapter: this, config: global })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const versionFields = buildVersionGlobalFields(global)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","pgEnum","pgSchema","pgTable","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","schemaName","table","payload","config","localization","enums","enum__locales","locales","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"AAEA,SAASA,eAAe,QAAQ,sBAAqB;AACrD,SAASC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,sBAAqB;AAC/D,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,oBAAmB;AAE9C,OAAO,MAAMC,OAAa,SAASA;IACjC,IAAI,IAAI,CAACC,UAAU,EAAE;QACnB,IAAI,CAACP,QAAQ,GAAGA,SAAS,IAAI,CAACO,UAAU;IAC1C,OAAO;QACL,IAAI,CAACP,QAAQ,GAAG;YAAEQ,OAAOP;QAAQ;IACnC;IACA,IAAI,IAAI,CAACQ,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpC,IAAI,CAACC,KAAK,CAACC,aAAa,GAAGd,OACzB,YACA,IAAI,CAACU,OAAO,CAACC,MAAM,CAACC,YAAY,CAACG,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IAE/D;IAEA,IAAI,CAACP,OAAO,CAACC,MAAM,CAACO,WAAW,CAACC,OAAO,CAAC,CAACC;QACvCrB,gBAAgB;YACdsB,SAAS,IAAI;YACbV,QAAQS;QACV;QAEA,IAAIA,WAAWE,QAAQ,EAAE;YACvBvB,gBAAgB;gBACdsB,SAAS,IAAI;gBACbV,QAAQS;gBACRE,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IACA,IAAI,CAACb,OAAO,CAACC,MAAM,CAACO,WAAW,CAACC,OAAO,CAAC,CAACC;QACvC,MAAMI,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACrB,YAAYe,WAAWO,IAAI;QAEnErB,WAAW;YACTe,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACR,YAAYE,UAAUO;YACxCC,eAAe;YACfC,QAAQX,WAAWW,MAAM;YACzBP;YACAQ,YAAYZ,WAAWY,UAAU;YACjCV,UAAU;QACZ;QAEA,IAAIF,WAAWE,QAAQ,EAAE;YACvB,MAAMW,oBAAoB,IAAI,CAACR,YAAY,CAACC,GAAG,CAC7C,CAAC,CAAC,EAAErB,YAAYe,WAAWO,IAAI,EAAE,EAAE,IAAI,CAACO,cAAc,CAAC,CAAC;YAE1D,MAAMC,gBAAgBhC,6BAA6BiB;YAEnDd,WAAW;gBACTe,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACR,WAAWE,QAAQ,EAAEO;gBACvCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;IAEA,IAAI,CAACZ,OAAO,CAACC,MAAM,CAACyB,OAAO,CAACjB,OAAO,CAAC,CAACkB;QACnC,MAAMb,YAAYzB,gBAAgB;YAAEsB,SAAS,IAAI;YAAEV,QAAQ0B;QAAO;QAElE/B,WAAW;YACTe,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACS,QAAQf,UAAUO;YACpCC,eAAe;YACfC,QAAQM,OAAON,MAAM;YACrBP;YACAQ,YAAY;YACZV,UAAU;QACZ;QAEA,IAAIe,OAAOf,QAAQ,EAAE;YACnB,MAAMW,oBAAoBlC,gBAAgB;gBACxCsB,SAAS,IAAI;gBACbV,QAAQ0B;gBACRf,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAMY,gBAAgB/B,yBAAyBiC;YAE/C/B,WAAW;gBACTe,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACS,OAAOf,QAAQ,EAAEO;gBACnCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.payload.config.localization) {\n this.enums.enum__locales = this.pgSchema.enum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = this.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${this.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(collection)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({ adapter: this, config: global })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const versionFields = buildVersionGlobalFields(global)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","payload","config","localization","enums","enum__locales","pgSchema","enum","locales","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"AAEA,SAASA,eAAe,QAAQ,sBAAqB;AACrD,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,oBAAmB;AAE9C,OAAO,MAAMC,OAAa,SAASA;IACjC,IAAI,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpC,IAAI,CAACC,KAAK,CAACC,aAAa,GAAG,IAAI,CAACC,QAAQ,CAACC,IAAI,CAC3C,YACA,IAAI,CAACN,OAAO,CAACC,MAAM,CAACC,YAAY,CAACK,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IAE/D;IAEA,IAAI,CAACT,OAAO,CAACC,MAAM,CAACS,WAAW,CAACC,OAAO,CAAC,CAACC;QACvClB,gBAAgB;YACdmB,SAAS,IAAI;YACbZ,QAAQW;QACV;QAEA,IAAIA,WAAWE,QAAQ,EAAE;YACvBpB,gBAAgB;gBACdmB,SAAS,IAAI;gBACbZ,QAAQW;gBACRE,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IACA,IAAI,CAACf,OAAO,CAACC,MAAM,CAACS,WAAW,CAACC,OAAO,CAAC,CAACC;QACvC,MAAMI,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACrB,YAAYe,WAAWO,IAAI;QAEnErB,WAAW;YACTe,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACR,YAAYE,UAAUO;YACxCC,eAAe;YACfC,QAAQX,WAAWW,MAAM;YACzBP;YACAQ,YAAYZ,WAAWY,UAAU;YACjCV,UAAU;QACZ;QAEA,IAAIF,WAAWE,QAAQ,EAAE;YACvB,MAAMW,oBAAoB,IAAI,CAACR,YAAY,CAACC,GAAG,CAC7C,CAAC,CAAC,EAAErB,YAAYe,WAAWO,IAAI,EAAE,EAAE,IAAI,CAACO,cAAc,CAAC,CAAC;YAE1D,MAAMC,gBAAgBhC,6BAA6BiB;YAEnDd,WAAW;gBACTe,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACR,WAAWE,QAAQ,EAAEO;gBACvCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;IAEA,IAAI,CAACd,OAAO,CAACC,MAAM,CAAC2B,OAAO,CAACjB,OAAO,CAAC,CAACkB;QACnC,MAAMb,YAAYtB,gBAAgB;YAAEmB,SAAS,IAAI;YAAEZ,QAAQ4B;QAAO;QAElE/B,WAAW;YACTe,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACS,QAAQf,UAAUO;YACpCC,eAAe;YACfC,QAAQM,OAAON,MAAM;YACrBP;YACAQ,YAAY;YACZV,UAAU;QACZ;QAEA,IAAIe,OAAOf,QAAQ,EAAE;YACnB,MAAMW,oBAAoB/B,gBAAgB;gBACxCmB,SAAS,IAAI;gBACbZ,QAAQ4B;gBACRf,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAMY,gBAAgB/B,yBAAyBiC;YAE/C/B,WAAW;gBACTe,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACS,OAAOf,QAAQ,EAAEO;gBACnCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEf,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,KAAK,EAAE,cAAc,EAAwB,eAAe,EAAE,MAAM,aAAa,CAAA;AAMxF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACrF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC,CAAA;AAEnG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC7C,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,0NAcpB,IAAI,KAAG,MAqYT,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEf,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,KAAK,EAAE,cAAc,EAAwB,eAAe,EAAE,MAAM,aAAa,CAAA;AAMxF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACrF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC,CAAA;AAEnG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC7C,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,0NAcpB,IAAI,KAAG,MAqYT,CAAA"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-param-reassign */ import { createTableName } from '@payloadcms/drizzle';
1
+ import { createTableName } from '@payloadcms/drizzle';
2
2
  import { relations } from 'drizzle-orm';
3
3
  import { foreignKey, index, integer, numeric, serial, timestamp, unique, varchar } from 'drizzle-orm/pg-core';
4
4
  import toSnakeCase from 'to-snake-case';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Relation } from 'drizzle-orm'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumnBuilder,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { Field } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n serial,\n timestamp,\n unique,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, GenericTable, IDType, PostgresAdapter } from '../types.js'\n\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { setColumnID } from './setColumnID.js'\nimport { traverseFields } from './traverseFields.js'\n\nexport type BaseExtraConfig = Record<\n string,\n (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder\n>\n\nexport type RelationMap = Map<string, { localized: boolean; target: string; type: 'many' | 'one' }>\n\ntype Args = {\n adapter: PostgresAdapter\n baseColumns?: Record<string, PgColumnBuilder>\n baseExtraConfig?: BaseExtraConfig\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableUnique: boolean\n fields: Field[]\n rootRelationsToBuild?: RelationMap\n rootRelationships?: Set<string>\n rootTableIDColType?: string\n rootTableName?: string\n tableName: string\n timestamps?: boolean\n versions: boolean\n}\n\ntype Result = {\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseExtraConfig = {},\n disableNotNull,\n disableUnique = false,\n fields,\n rootRelationsToBuild,\n rootRelationships,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n tableName,\n timestamps,\n versions,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, PgColumnBuilder> = baseColumns\n const indexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n\n const localesColumns: Record<string, PgColumnBuilder> = {}\n const localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n let localesTable: GenericTable | PgTableWithColumns<any>\n let textsTable: GenericTable | PgTableWithColumns<any>\n let numbersTable: GenericTable | PgTableWithColumns<any>\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n let relationshipsTable: GenericTable | PgTableWithColumns<any>\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentTableName: tableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n versions,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, target })\n })\n\n if (timestamps) {\n columns.createdAt = timestamp('created_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n columns.updatedAt = timestamp('updated_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n }\n\n const table = adapter.pgSchema.table(tableName, columns, (cols) => {\n const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func]) => {\n config[key] = func(cols)\n return config\n }, {})\n\n const result = Object.entries(indexes).reduce((acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n }, extraConfig)\n\n return result\n })\n\n adapter.tables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = serial('id').primaryKey()\n localesColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull()\n\n localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols) => {\n return Object.entries(localesIndexes).reduce(\n (acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n },\n {\n _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(\n cols._locale,\n cols._parentID,\n ),\n _parentIdFk: foreignKey({\n name: `${localeTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n },\n )\n })\n\n adapter.tables[localeTableName] = localesTable\n\n adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n result._parentID = one(table, {\n fields: [localesTable._parentID],\n references: [table.id],\n // name the relationship by what the many() relationName is\n relationName: '_locales',\n })\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [localesTable[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], {\n relationName: key,\n })\n }\n })\n\n return result\n })\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n text: varchar('text'),\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n textsTable = adapter.pgSchema.table(textsTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${textsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyTextField === 'index') {\n config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text)\n }\n\n if (hasLocalizedManyTextField) {\n config.localeParent = index(`${textsTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[textsTableName] = textsTable\n\n adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one }) => ({\n parent: one(table, {\n fields: [textsTable.parent],\n references: [table.id],\n relationName: '_texts',\n }),\n }))\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n number: numeric('number'),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${numbersTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyNumberField === 'index') {\n config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number)\n }\n\n if (hasLocalizedManyNumberField) {\n config.localeParent = index(`${numbersTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[numbersTableName] = numbersTable\n\n adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one }) => ({\n parent: one(table, {\n fields: [numbersTable.parent],\n references: [table.id],\n relationName: '_numbers',\n }),\n }))\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order'),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = adapter.enums.enum__locales('locale')\n }\n\n const relationExtraConfig: BaseExtraConfig = {}\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') colType = 'numeric'\n if (relatedCollectionCustomIDType === 'text') colType = 'varchar'\n\n relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](\n `${formattedRelationTo}_id`,\n )\n\n relationExtraConfig[`${relationTo}IdFk`] = (cols) =>\n foreignKey({\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [cols[`${relationTo}ID`]],\n foreignColumns: [adapter.tables[formattedRelationTo].id],\n }).onDelete('cascade')\n })\n\n relationshipsTable = adapter.pgSchema.table(\n relationshipsTableName,\n relationshipColumns,\n (cols) => {\n const result: Record<string, ForeignKeyBuilder | IndexBuilder> = Object.entries(\n relationExtraConfig,\n ).reduce(\n (config, [key, func]) => {\n config[key] = func(cols)\n return config\n },\n {\n order: index(`${relationshipsTableName}_order_idx`).on(cols.order),\n parentFk: foreignKey({\n name: `${relationshipsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),\n pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path),\n },\n )\n\n if (hasLocalizedRelationshipField) {\n result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale)\n }\n\n return result\n },\n )\n\n adapter.tables[relationshipsTableName] = relationshipsTable\n\n adapter.relations[`relations_${relationshipsTableName}`] = relations(\n relationshipsTable,\n ({ one }) => {\n const result: Record<string, Relation<string>> = {\n parent: one(table, {\n fields: [relationshipsTable.parent],\n references: [table.id],\n relationName: '_rels',\n }),\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n result[idColumnName] = one(adapter.tables[relatedTableName], {\n fields: [relationshipsTable[idColumnName]],\n references: [adapter.tables[relatedTableName].id],\n relationName: relationTo,\n })\n })\n\n return result\n },\n )\n }\n }\n\n adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n nonLocalizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [table[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 if (hasLocalizedField) {\n result._locales = many(localesTable, { relationName: '_locales' })\n }\n\n if (hasManyTextField) {\n result._texts = many(textsTable, { relationName: '_texts' })\n }\n\n if (hasManyNumberField) {\n result._numbers = many(numbersTable, { relationName: '_numbers' })\n }\n\n if (relationships.size && relationshipsTable) {\n result._rels = many(relationshipsTable, {\n relationName: '_rels',\n })\n }\n\n return result\n })\n\n return { hasManyNumberField, hasManyTextField, relationsToBuild }\n}\n"],"names":["createTableName","relations","foreignKey","index","integer","numeric","serial","timestamp","unique","varchar","toSnakeCase","parentIDColumnMap","setColumnID","traverseFields","buildTable","adapter","baseColumns","baseExtraConfig","disableNotNull","disableUnique","fields","rootRelationsToBuild","rootRelationships","rootTableIDColType","rootTableName","incomingRootTableName","tableName","timestamps","versions","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","target","key","map","set","createdAt","mode","precision","withTimezone","defaultNow","notNull","updatedAt","table","pgSchema","cols","extraConfig","Object","entries","reduce","config","func","result","acc","colName","tables","size","localeTableName","localesSuffix","id","primaryKey","_locale","enums","enum__locales","_parentID","_localeParent","on","_parentIdFk","name","foreignColumns","onDelete","many","one","references","relationName","textsTableName","order","parent","path","text","locale","orderParentIdx","parentFk","text_idx","localeParent","numbersTableName","number","numberIdx","relationshipColumns","relationExtraConfig","relationshipsTableName","relationshipsSuffix","relationTo","relationshipConfig","payload","collections","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","parentIdx","pathIdx","localeIdx","relatedTableName","idColumnName","_locales","_texts","_numbers","_rels"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumnBuilder,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { Field } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n serial,\n timestamp,\n unique,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, GenericTable, IDType, PostgresAdapter } from '../types.js'\n\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { setColumnID } from './setColumnID.js'\nimport { traverseFields } from './traverseFields.js'\n\nexport type BaseExtraConfig = Record<\n string,\n (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder\n>\n\nexport type RelationMap = Map<string, { localized: boolean; target: string; type: 'many' | 'one' }>\n\ntype Args = {\n adapter: PostgresAdapter\n baseColumns?: Record<string, PgColumnBuilder>\n baseExtraConfig?: BaseExtraConfig\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableUnique: boolean\n fields: Field[]\n rootRelationsToBuild?: RelationMap\n rootRelationships?: Set<string>\n rootTableIDColType?: string\n rootTableName?: string\n tableName: string\n timestamps?: boolean\n versions: boolean\n}\n\ntype Result = {\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseExtraConfig = {},\n disableNotNull,\n disableUnique = false,\n fields,\n rootRelationsToBuild,\n rootRelationships,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n tableName,\n timestamps,\n versions,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, PgColumnBuilder> = baseColumns\n const indexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n\n const localesColumns: Record<string, PgColumnBuilder> = {}\n const localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n let localesTable: GenericTable | PgTableWithColumns<any>\n let textsTable: GenericTable | PgTableWithColumns<any>\n let numbersTable: GenericTable | PgTableWithColumns<any>\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n let relationshipsTable: GenericTable | PgTableWithColumns<any>\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentTableName: tableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n versions,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, target })\n })\n\n if (timestamps) {\n columns.createdAt = timestamp('created_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n columns.updatedAt = timestamp('updated_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n }\n\n const table = adapter.pgSchema.table(tableName, columns, (cols) => {\n const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func]) => {\n config[key] = func(cols)\n return config\n }, {})\n\n const result = Object.entries(indexes).reduce((acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n }, extraConfig)\n\n return result\n })\n\n adapter.tables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = serial('id').primaryKey()\n localesColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull()\n\n localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols) => {\n return Object.entries(localesIndexes).reduce(\n (acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n },\n {\n _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(\n cols._locale,\n cols._parentID,\n ),\n _parentIdFk: foreignKey({\n name: `${localeTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n },\n )\n })\n\n adapter.tables[localeTableName] = localesTable\n\n adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n result._parentID = one(table, {\n fields: [localesTable._parentID],\n references: [table.id],\n // name the relationship by what the many() relationName is\n relationName: '_locales',\n })\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [localesTable[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], {\n relationName: key,\n })\n }\n })\n\n return result\n })\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n text: varchar('text'),\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n textsTable = adapter.pgSchema.table(textsTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${textsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyTextField === 'index') {\n config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text)\n }\n\n if (hasLocalizedManyTextField) {\n config.localeParent = index(`${textsTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[textsTableName] = textsTable\n\n adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one }) => ({\n parent: one(table, {\n fields: [textsTable.parent],\n references: [table.id],\n relationName: '_texts',\n }),\n }))\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n number: numeric('number'),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${numbersTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyNumberField === 'index') {\n config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number)\n }\n\n if (hasLocalizedManyNumberField) {\n config.localeParent = index(`${numbersTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[numbersTableName] = numbersTable\n\n adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one }) => ({\n parent: one(table, {\n fields: [numbersTable.parent],\n references: [table.id],\n relationName: '_numbers',\n }),\n }))\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order'),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = adapter.enums.enum__locales('locale')\n }\n\n const relationExtraConfig: BaseExtraConfig = {}\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') colType = 'numeric'\n if (relatedCollectionCustomIDType === 'text') colType = 'varchar'\n\n relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](\n `${formattedRelationTo}_id`,\n )\n\n relationExtraConfig[`${relationTo}IdFk`] = (cols) =>\n foreignKey({\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [cols[`${relationTo}ID`]],\n foreignColumns: [adapter.tables[formattedRelationTo].id],\n }).onDelete('cascade')\n })\n\n relationshipsTable = adapter.pgSchema.table(\n relationshipsTableName,\n relationshipColumns,\n (cols) => {\n const result: Record<string, ForeignKeyBuilder | IndexBuilder> = Object.entries(\n relationExtraConfig,\n ).reduce(\n (config, [key, func]) => {\n config[key] = func(cols)\n return config\n },\n {\n order: index(`${relationshipsTableName}_order_idx`).on(cols.order),\n parentFk: foreignKey({\n name: `${relationshipsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),\n pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path),\n },\n )\n\n if (hasLocalizedRelationshipField) {\n result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale)\n }\n\n return result\n },\n )\n\n adapter.tables[relationshipsTableName] = relationshipsTable\n\n adapter.relations[`relations_${relationshipsTableName}`] = relations(\n relationshipsTable,\n ({ one }) => {\n const result: Record<string, Relation<string>> = {\n parent: one(table, {\n fields: [relationshipsTable.parent],\n references: [table.id],\n relationName: '_rels',\n }),\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n result[idColumnName] = one(adapter.tables[relatedTableName], {\n fields: [relationshipsTable[idColumnName]],\n references: [adapter.tables[relatedTableName].id],\n relationName: relationTo,\n })\n })\n\n return result\n },\n )\n }\n }\n\n adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n nonLocalizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [table[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 if (hasLocalizedField) {\n result._locales = many(localesTable, { relationName: '_locales' })\n }\n\n if (hasManyTextField) {\n result._texts = many(textsTable, { relationName: '_texts' })\n }\n\n if (hasManyNumberField) {\n result._numbers = many(numbersTable, { relationName: '_numbers' })\n }\n\n if (relationships.size && relationshipsTable) {\n result._rels = many(relationshipsTable, {\n relationName: '_rels',\n })\n }\n\n return result\n })\n\n return { hasManyNumberField, hasManyTextField, relationsToBuild }\n}\n"],"names":["createTableName","relations","foreignKey","index","integer","numeric","serial","timestamp","unique","varchar","toSnakeCase","parentIDColumnMap","setColumnID","traverseFields","buildTable","adapter","baseColumns","baseExtraConfig","disableNotNull","disableUnique","fields","rootRelationsToBuild","rootRelationships","rootTableIDColType","rootTableName","incomingRootTableName","tableName","timestamps","versions","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","target","key","map","set","createdAt","mode","precision","withTimezone","defaultNow","notNull","updatedAt","table","pgSchema","cols","extraConfig","Object","entries","reduce","config","func","result","acc","colName","tables","size","localeTableName","localesSuffix","id","primaryKey","_locale","enums","enum__locales","_parentID","_localeParent","on","_parentIdFk","name","foreignColumns","onDelete","many","one","references","relationName","textsTableName","order","parent","path","text","locale","orderParentIdx","parentFk","text_idx","localeParent","numbersTableName","number","numberIdx","relationshipColumns","relationExtraConfig","relationshipsTableName","relationshipsSuffix","relationTo","relationshipConfig","payload","collections","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","parentIdx","pathIdx","localeIdx","relatedTableName","idColumnName","_locales","_texts","_numbers","_rels"],"mappings":"AAUA,SAASA,eAAe,QAAQ,sBAAqB;AACrD,SAASC,SAAS,QAAQ,cAAa;AACvC,SACEC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,MAAM,EACNC,OAAO,QACF,sBAAqB;AAC5B,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,cAAc,QAAQ,sBAAqB;AAiCpD,OAAO,MAAMC,aAAa,CAAC,EACzBC,OAAO,EACPC,cAAc,CAAC,CAAC,EAChBC,kBAAkB,CAAC,CAAC,EACpBC,cAAc,EACdC,gBAAgB,KAAK,EACrBC,MAAM,EACNC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAeC,qBAAqB,EACpCC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACH;IACL,MAAMC,SAAS,CAACJ;IAChB,MAAMD,gBAAgBC,yBAAyBC;IAC/C,MAAMI,UAA2Cd;IACjD,MAAMe,UAAkE,CAAC;IAEzE,MAAMC,iBAAkD,CAAC;IACzD,MAAMC,iBAAyE,CAAC;IAChF,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,uCAAuC;IACvC,MAAMC,gBAA6Bf,qBAAqB,IAAIgB;IAE5D,IAAIC;IAEJ,oBAAoB;IACpB,MAAMC,mBAAgC,IAAIC;IAE1C,MAAMC,YAAoB9B,YAAY;QAAEG;QAASe;QAASV;IAAO;IAEjE,MAAM,EACJuB,iBAAiB,EACjBC,2BAA2B,EAC3BC,yBAAyB,EACzBC,6BAA6B,EAC7BC,kBAAkB,EAClBC,gBAAgB,EACjB,GAAGnC,eAAe;QACjBE;QACAe;QACAZ;QACAC;QACAC;QACAW;QACAC;QACAC;QACAgB,cAAcvB;QACdwB,iBAAiBxB;QACjBc;QACAH;QACAhB,sBAAsBA,wBAAwBmB;QAC9CjB,oBAAoBA,sBAAsBmB;QAC1ClB;QACAI;IACF;IAEA,4DAA4D;IAC5D,MAAMuB,qBAAqB,IAAIV;IAC/B,MAAMW,wBAAwB,IAAIX;IAElCD,iBAAiBa,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAEC,MAAM,EAAE,EAAEC;QACrD,MAAMC,MAAMH,YAAYJ,qBAAqBC;QAC7CM,IAAIC,GAAG,CAACF,KAAK;YAAEH;YAAME;QAAO;IAC9B;IAEA,IAAI7B,YAAY;QACdG,QAAQ8B,SAAS,GAAGrD,UAAU,cAAc;YAC1CsD,MAAM;YACNC,WAAW;YACXC,cAAc;QAChB,GACGC,UAAU,GACVC,OAAO;QACVnC,QAAQoC,SAAS,GAAG3D,UAAU,cAAc;YAC1CsD,MAAM;YACNC,WAAW;YACXC,cAAc;QAChB,GACGC,UAAU,GACVC,OAAO;IACZ;IAEA,MAAME,QAAQpD,QAAQqD,QAAQ,CAACD,KAAK,CAACzC,WAAWI,SAAS,CAACuC;QACxD,MAAMC,cAAcC,OAAOC,OAAO,CAACvD,iBAAiBwD,MAAM,CAAC,CAACC,QAAQ,CAACjB,KAAKkB,KAAK;YAC7ED,MAAM,CAACjB,IAAI,GAAGkB,KAAKN;YACnB,OAAOK;QACT,GAAG,CAAC;QAEJ,MAAME,SAASL,OAAOC,OAAO,CAACzC,SAAS0C,MAAM,CAAC,CAACI,KAAK,CAACC,SAASH,KAAK;YACjEE,GAAG,CAACC,QAAQ,GAAGH,KAAKN;YACpB,OAAOQ;QACT,GAAGP;QAEH,OAAOM;IACT;IAEA7D,QAAQgE,MAAM,CAACrD,UAAU,GAAGyC;IAE5B,IAAIxB,qBAAqBQ,mBAAmB6B,IAAI,EAAE;QAChD,MAAMC,kBAAkB,CAAC,EAAEvD,UAAU,EAAEX,QAAQmE,aAAa,CAAC,CAAC;QAC9DlD,eAAemD,EAAE,GAAG7E,OAAO,MAAM8E,UAAU;QAC3CpD,eAAeqD,OAAO,GAAGtE,QAAQuE,KAAK,CAACC,aAAa,CAAC,WAAWtB,OAAO;QACvEjC,eAAewD,SAAS,GAAG7E,iBAAiB,CAAC+B,UAAU,CAAC,cAAcuB,OAAO;QAE7E/B,eAAenB,QAAQqD,QAAQ,CAACD,KAAK,CAACc,iBAAiBjD,gBAAgB,CAACqC;YACtE,OAAOE,OAAOC,OAAO,CAACvC,gBAAgBwC,MAAM,CAC1C,CAACI,KAAK,CAACC,SAASH,KAAK;gBACnBE,GAAG,CAACC,QAAQ,GAAGH,KAAKN;gBACpB,OAAOQ;YACT,GACA;gBACEY,eAAejF,OAAO,CAAC,EAAEyE,gBAAgB,wBAAwB,CAAC,EAAES,EAAE,CACpErB,KAAKgB,OAAO,EACZhB,KAAKmB,SAAS;gBAEhBG,aAAazF,WAAW;oBACtB0F,MAAM,CAAC,EAAEX,gBAAgB,aAAa,CAAC;oBACvCnD,SAAS;wBAACuC,KAAKmB,SAAS;qBAAC;oBACzBK,gBAAgB;wBAAC1B,MAAMgB,EAAE;qBAAC;gBAC5B,GAAGW,QAAQ,CAAC;YACd;QAEJ;QAEA/E,QAAQgE,MAAM,CAACE,gBAAgB,GAAG/C;QAElCnB,QAAQd,SAAS,CAAC,CAAC,UAAU,EAAEgF,gBAAgB,CAAC,CAAC,GAAGhF,UAAUiC,cAAc,CAAC,EAAE6D,IAAI,EAAEC,GAAG,EAAE;YACxF,MAAMpB,SAA2C,CAAC;YAElDA,OAAOY,SAAS,GAAGQ,IAAI7B,OAAO;gBAC5B/C,QAAQ;oBAACc,aAAasD,SAAS;iBAAC;gBAChCS,YAAY;oBAAC9B,MAAMgB,EAAE;iBAAC;gBACtB,2DAA2D;gBAC3De,cAAc;YAChB;YAEA/C,mBAAmBE,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEE,MAAM,EAAE,EAAEC;gBAC5C,IAAIH,SAAS,OAAO;oBAClBsB,MAAM,CAACnB,IAAI,GAAGuC,IAAIjF,QAAQgE,MAAM,CAACvB,OAAO,EAAE;wBACxCpC,QAAQ;4BAACc,YAAY,CAACuB,IAAI;yBAAC;wBAC3BwC,YAAY;4BAAClF,QAAQgE,MAAM,CAACvB,OAAO,CAAC2B,EAAE;yBAAC;wBACvCe,cAAczC;oBAChB;gBACF;gBACA,IAAIH,SAAS,QAAQ;oBACnBsB,MAAM,CAACnB,IAAI,GAAGsC,KAAKhF,QAAQgE,MAAM,CAACvB,OAAO,EAAE;wBACzC0C,cAAczC;oBAChB;gBACF;YACF;YAEA,OAAOmB;QACT;IACF;IAEA,IAAI/C,QAAQ;QACV,IAAImB,kBAAkB;YACpB,MAAMmD,iBAAiB,CAAC,EAAE3E,cAAc,MAAM,CAAC;YAC/C,MAAMM,UAA2C;gBAC/CqD,IAAI7E,OAAO,MAAM8E,UAAU;gBAC3BgB,OAAOhG,QAAQ,SAAS6D,OAAO;gBAC/BoC,QAAQ1F,iBAAiB,CAAC+B,UAAU,CAAC,aAAauB,OAAO;gBACzDqC,MAAM7F,QAAQ,QAAQwD,OAAO;gBAC7BsC,MAAM9F,QAAQ;YAChB;YAEA,IAAIoC,2BAA2B;gBAC7Bf,QAAQ0E,MAAM,GAAGzF,QAAQuE,KAAK,CAACC,aAAa,CAAC;YAC/C;YAEApD,aAAapB,QAAQqD,QAAQ,CAACD,KAAK,CAACgC,gBAAgBrE,SAAS,CAACuC;gBAC5D,MAAMK,SAA2D;oBAC/D+B,gBAAgBtG,MAAM,CAAC,EAAEgG,eAAe,iBAAiB,CAAC,EAAET,EAAE,CAACrB,KAAK+B,KAAK,EAAE/B,KAAKgC,MAAM;oBACtFK,UAAUxG,WAAW;wBACnB0F,MAAM,CAAC,EAAEO,eAAe,UAAU,CAAC;wBACnCrE,SAAS;4BAACuC,KAAKgC,MAAM;yBAAC;wBACtBR,gBAAgB;4BAAC1B,MAAMgB,EAAE;yBAAC;oBAC5B,GAAGW,QAAQ,CAAC;gBACd;gBAEA,IAAI9C,qBAAqB,SAAS;oBAChC0B,OAAOiC,QAAQ,GAAGxG,MAAM,CAAC,EAAEgG,eAAe,SAAS,CAAC,EAAET,EAAE,CAACrB,KAAKkC,IAAI;gBACpE;gBAEA,IAAI1D,2BAA2B;oBAC7B6B,OAAOkC,YAAY,GAAGzG,MAAM,CAAC,EAAEgG,eAAe,cAAc,CAAC,EAAET,EAAE,CAC/DrB,KAAKmC,MAAM,EACXnC,KAAKgC,MAAM;gBAEf;gBAEA,OAAO3B;YACT;YAEA3D,QAAQgE,MAAM,CAACoB,eAAe,GAAGhE;YAEjCpB,QAAQd,SAAS,CAAC,CAAC,UAAU,EAAEkG,eAAe,CAAC,CAAC,GAAGlG,UAAUkC,YAAY,CAAC,EAAE6D,GAAG,EAAE,GAAM,CAAA;oBACrFK,QAAQL,IAAI7B,OAAO;wBACjB/C,QAAQ;4BAACe,WAAWkE,MAAM;yBAAC;wBAC3BJ,YAAY;4BAAC9B,MAAMgB,EAAE;yBAAC;wBACtBe,cAAc;oBAChB;gBACF,CAAA;QACF;QAEA,IAAInD,oBAAoB;YACtB,MAAM8D,mBAAmB,CAAC,EAAErF,cAAc,QAAQ,CAAC;YACnD,MAAMM,UAA2C;gBAC/CqD,IAAI7E,OAAO,MAAM8E,UAAU;gBAC3B0B,QAAQzG,QAAQ;gBAChB+F,OAAOhG,QAAQ,SAAS6D,OAAO;gBAC/BoC,QAAQ1F,iBAAiB,CAAC+B,UAAU,CAAC,aAAauB,OAAO;gBACzDqC,MAAM7F,QAAQ,QAAQwD,OAAO;YAC/B;YAEA,IAAIrB,6BAA6B;gBAC/Bd,QAAQ0E,MAAM,GAAGzF,QAAQuE,KAAK,CAACC,aAAa,CAAC;YAC/C;YAEAnD,eAAerB,QAAQqD,QAAQ,CAACD,KAAK,CAAC0C,kBAAkB/E,SAAS,CAACuC;gBAChE,MAAMK,SAA2D;oBAC/D+B,gBAAgBtG,MAAM,CAAC,EAAE0G,iBAAiB,iBAAiB,CAAC,EAAEnB,EAAE,CAACrB,KAAK+B,KAAK,EAAE/B,KAAKgC,MAAM;oBACxFK,UAAUxG,WAAW;wBACnB0F,MAAM,CAAC,EAAEiB,iBAAiB,UAAU,CAAC;wBACrC/E,SAAS;4BAACuC,KAAKgC,MAAM;yBAAC;wBACtBR,gBAAgB;4BAAC1B,MAAMgB,EAAE;yBAAC;oBAC5B,GAAGW,QAAQ,CAAC;gBACd;gBAEA,IAAI/C,uBAAuB,SAAS;oBAClC2B,OAAOqC,SAAS,GAAG5G,MAAM,CAAC,EAAE0G,iBAAiB,WAAW,CAAC,EAAEnB,EAAE,CAACrB,KAAKyC,MAAM;gBAC3E;gBAEA,IAAIlE,6BAA6B;oBAC/B8B,OAAOkC,YAAY,GAAGzG,MAAM,CAAC,EAAE0G,iBAAiB,cAAc,CAAC,EAAEnB,EAAE,CACjErB,KAAKmC,MAAM,EACXnC,KAAKgC,MAAM;gBAEf;gBAEA,OAAO3B;YACT;YAEA3D,QAAQgE,MAAM,CAAC8B,iBAAiB,GAAGzE;YAEnCrB,QAAQd,SAAS,CAAC,CAAC,UAAU,EAAE4G,iBAAiB,CAAC,CAAC,GAAG5G,UAAUmC,cAAc,CAAC,EAAE4D,GAAG,EAAE,GAAM,CAAA;oBACzFK,QAAQL,IAAI7B,OAAO;wBACjB/C,QAAQ;4BAACgB,aAAaiE,MAAM;yBAAC;wBAC7BJ,YAAY;4BAAC9B,MAAMgB,EAAE;yBAAC;wBACtBe,cAAc;oBAChB;gBACF,CAAA;QACF;QAEA,IAAI7D,cAAc2C,IAAI,EAAE;YACtB,MAAMgC,sBAAuD;gBAC3D7B,IAAI7E,OAAO,MAAM8E,UAAU;gBAC3BgB,OAAOhG,QAAQ;gBACfiG,QAAQ1F,iBAAiB,CAAC+B,UAAU,CAAC,aAAauB,OAAO;gBACzDqC,MAAM7F,QAAQ,QAAQwD,OAAO;YAC/B;YAEA,IAAInB,+BAA+B;gBACjCkE,oBAAoBR,MAAM,GAAGzF,QAAQuE,KAAK,CAACC,aAAa,CAAC;YAC3D;YAEA,MAAM0B,sBAAuC,CAAC;YAC9C,MAAMC,yBAAyB,CAAC,EAAExF,UAAU,EAAEX,QAAQoG,mBAAmB,CAAC,CAAC;YAE3E9E,cAAcgB,OAAO,CAAC,CAAC+D;gBACrB,MAAMC,qBAAqBtG,QAAQuG,OAAO,CAACC,WAAW,CAACH,WAAW,CAAC1C,MAAM;gBACzE,MAAM8C,sBAAsBxH,gBAAgB;oBAC1Ce;oBACA2D,QAAQ2C;oBACRI,sBAAsB;gBACxB;gBACA,IAAIC,UAAU3G,QAAQ4G,MAAM,KAAK,SAAS,SAAS;gBACnD,MAAMC,gCACJ7G,QAAQuG,OAAO,CAACC,WAAW,CAACF,mBAAmBQ,IAAI,CAAC,EAAEC;gBAExD,IAAIF,kCAAkC,UAAUF,UAAU;gBAC1D,IAAIE,kCAAkC,QAAQF,UAAU;gBAExDV,mBAAmB,CAAC,CAAC,EAAEI,WAAW,EAAE,CAAC,CAAC,GAAGzG,iBAAiB,CAAC+G,QAAQ,CACjE,CAAC,EAAEF,oBAAoB,GAAG,CAAC;gBAG7BP,mBAAmB,CAAC,CAAC,EAAEG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC/C,OAC1CnE,WAAW;wBACT0F,MAAM,CAAC,EAAEsB,uBAAuB,CAAC,EAAExG,YAAY0G,YAAY,GAAG,CAAC;wBAC/DtF,SAAS;4BAACuC,IAAI,CAAC,CAAC,EAAE+C,WAAW,EAAE,CAAC,CAAC;yBAAC;wBAClCvB,gBAAgB;4BAAC9E,QAAQgE,MAAM,CAACyC,oBAAoB,CAACrC,EAAE;yBAAC;oBAC1D,GAAGW,QAAQ,CAAC;YAChB;YAEAvD,qBAAqBxB,QAAQqD,QAAQ,CAACD,KAAK,CACzC+C,wBACAF,qBACA,CAAC3C;gBACC,MAAMO,SAA2DL,OAAOC,OAAO,CAC7EyC,qBACAxC,MAAM,CACN,CAACC,QAAQ,CAACjB,KAAKkB,KAAK;oBAClBD,MAAM,CAACjB,IAAI,GAAGkB,KAAKN;oBACnB,OAAOK;gBACT,GACA;oBACE0B,OAAOjG,MAAM,CAAC,EAAE+G,uBAAuB,UAAU,CAAC,EAAExB,EAAE,CAACrB,KAAK+B,KAAK;oBACjEM,UAAUxG,WAAW;wBACnB0F,MAAM,CAAC,EAAEsB,uBAAuB,UAAU,CAAC;wBAC3CpF,SAAS;4BAACuC,KAAKgC,MAAM;yBAAC;wBACtBR,gBAAgB;4BAAC1B,MAAMgB,EAAE;yBAAC;oBAC5B,GAAGW,QAAQ,CAAC;oBACZiC,WAAW5H,MAAM,CAAC,EAAE+G,uBAAuB,WAAW,CAAC,EAAExB,EAAE,CAACrB,KAAKgC,MAAM;oBACvE2B,SAAS7H,MAAM,CAAC,EAAE+G,uBAAuB,SAAS,CAAC,EAAExB,EAAE,CAACrB,KAAKiC,IAAI;gBACnE;gBAGF,IAAIxD,+BAA+B;oBACjC8B,OAAOqD,SAAS,GAAG9H,MAAM,CAAC,EAAE+G,uBAAuB,WAAW,CAAC,EAAExB,EAAE,CAACrB,KAAKmC,MAAM;gBACjF;gBAEA,OAAO5B;YACT;YAGF7D,QAAQgE,MAAM,CAACmC,uBAAuB,GAAG3E;YAEzCxB,QAAQd,SAAS,CAAC,CAAC,UAAU,EAAEiH,uBAAuB,CAAC,CAAC,GAAGjH,UACzDsC,oBACA,CAAC,EAAEyD,GAAG,EAAE;gBACN,MAAMpB,SAA2C;oBAC/CyB,QAAQL,IAAI7B,OAAO;wBACjB/C,QAAQ;4BAACmB,mBAAmB8D,MAAM;yBAAC;wBACnCJ,YAAY;4BAAC9B,MAAMgB,EAAE;yBAAC;wBACtBe,cAAc;oBAChB;gBACF;gBAEA7D,cAAcgB,OAAO,CAAC,CAAC+D;oBACrB,MAAMc,mBAAmBlI,gBAAgB;wBACvCe;wBACA2D,QAAQ3D,QAAQuG,OAAO,CAACC,WAAW,CAACH,WAAW,CAAC1C,MAAM;wBACtD+C,sBAAsB;oBACxB;oBACA,MAAMU,eAAe,CAAC,EAAEf,WAAW,EAAE,CAAC;oBACtCxC,MAAM,CAACuD,aAAa,GAAGnC,IAAIjF,QAAQgE,MAAM,CAACmD,iBAAiB,EAAE;wBAC3D9G,QAAQ;4BAACmB,kBAAkB,CAAC4F,aAAa;yBAAC;wBAC1ClC,YAAY;4BAAClF,QAAQgE,MAAM,CAACmD,iBAAiB,CAAC/C,EAAE;yBAAC;wBACjDe,cAAckB;oBAChB;gBACF;gBAEA,OAAOxC;YACT;QAEJ;IACF;IAEA7D,QAAQd,SAAS,CAAC,CAAC,UAAU,EAAEyB,UAAU,CAAC,CAAC,GAAGzB,UAAUkE,OAAO,CAAC,EAAE4B,IAAI,EAAEC,GAAG,EAAE;QAC3E,MAAMpB,SAA2C,CAAC;QAElDxB,sBAAsBC,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEE,MAAM,EAAE,EAAEC;YAC/C,IAAIH,SAAS,OAAO;gBAClBsB,MAAM,CAACnB,IAAI,GAAGuC,IAAIjF,QAAQgE,MAAM,CAACvB,OAAO,EAAE;oBACxCpC,QAAQ;wBAAC+C,KAAK,CAACV,IAAI;qBAAC;oBACpBwC,YAAY;wBAAClF,QAAQgE,MAAM,CAACvB,OAAO,CAAC2B,EAAE;qBAAC;oBACvCe,cAAczC;gBAChB;YACF;YACA,IAAIH,SAAS,QAAQ;gBACnBsB,MAAM,CAACnB,IAAI,GAAGsC,KAAKhF,QAAQgE,MAAM,CAACvB,OAAO,EAAE;oBAAE0C,cAAczC;gBAAI;YACjE;QACF;QAEA,IAAId,mBAAmB;YACrBiC,OAAOwD,QAAQ,GAAGrC,KAAK7D,cAAc;gBAAEgE,cAAc;YAAW;QAClE;QAEA,IAAIlD,kBAAkB;YACpB4B,OAAOyD,MAAM,GAAGtC,KAAK5D,YAAY;gBAAE+D,cAAc;YAAS;QAC5D;QAEA,IAAInD,oBAAoB;YACtB6B,OAAO0D,QAAQ,GAAGvC,KAAK3D,cAAc;gBAAE8D,cAAc;YAAW;QAClE;QAEA,IAAI7D,cAAc2C,IAAI,IAAIzC,oBAAoB;YAC5CqC,OAAO2D,KAAK,GAAGxC,KAAKxD,oBAAoB;gBACtC2D,cAAc;YAChB;QACF;QAEA,OAAOtB;IACT;IAEA,OAAO;QAAE7B;QAAoBC;QAAkBR;IAAiB;AAClE,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../src/schema/createIndex.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,+CAc9C,CAAA"}
1
+ {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../src/schema/createIndex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,+CAc9C,CAAA"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-param-reassign */ import { index, uniqueIndex } from 'drizzle-orm/pg-core';
1
+ import { index, uniqueIndex } from 'drizzle-orm/pg-core';
2
2
  export const createIndex = ({ name, columnName, tableName, unique })=>{
3
3
  return (table)=>{
4
4
  let columns;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/createIndex.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { index, uniqueIndex } from 'drizzle-orm/pg-core'\n\nimport type { GenericColumn } from '../types.js'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: GenericColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique)\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAAA,oCAAoC,GACpC,SAASA,KAAK,EAAEC,WAAW,QAAQ,sBAAqB;AAWxD,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QACF,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/createIndex.ts"],"sourcesContent":["import { index, uniqueIndex } from 'drizzle-orm/pg-core'\n\nimport type { GenericColumn } from '../types.js'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: GenericColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique)\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAAA,SAASA,KAAK,EAAEC,WAAW,QAAQ,sBAAqB;AAWxD,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QACF,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AA2BhD,OAAO,KAAK,EAAE,cAAc,EAAU,eAAe,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAA;AAO9D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,WAAW,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,wRAoBxB,IAAI,KAAG,MA4rBT,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AA0BhD,OAAO,KAAK,EAAE,cAAc,EAAU,eAAe,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ9D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,WAAW,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,wRAoBxB,IAAI,KAAG,MA+rBT,CAAA"}
@@ -1,6 +1,6 @@
1
- /* eslint-disable no-param-reassign */ import { createTableName, hasLocalesTable, validateExistingBlockIsIdentical } from '@payloadcms/drizzle';
1
+ import { createTableName, hasLocalesTable, validateExistingBlockIsIdentical } from '@payloadcms/drizzle';
2
2
  import { relations } from 'drizzle-orm';
3
- import { PgNumericBuilder, PgUUIDBuilder, PgVarcharBuilder, boolean, foreignKey, index, integer, jsonb, numeric, pgEnum, text, timestamp, varchar } from 'drizzle-orm/pg-core';
3
+ import { PgNumericBuilder, PgUUIDBuilder, PgVarcharBuilder, boolean, foreignKey, index, integer, jsonb, numeric, text, timestamp, varchar } from 'drizzle-orm/pg-core';
4
4
  import { InvalidConfiguration } from 'payload';
5
5
  import { fieldAffectsData, optionIsObject } from 'payload/shared';
6
6
  import toSnakeCase from 'to-snake-case';
@@ -8,6 +8,7 @@ import { buildTable } from './build.js';
8
8
  import { createIndex } from './createIndex.js';
9
9
  import { idToUUID } from './idToUUID.js';
10
10
  import { parentIDColumnMap } from './parentIDColumnMap.js';
11
+ import { withDefault } from './withDefault.js';
11
12
  export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull, disableUnique = false, fieldPrefix, fields, forceLocalized, indexes, localesColumns, localesIndexes, newTableName, parentTableName, relationsToBuild, relationships, rootRelationsToBuild, rootTableIDColType, rootTableName, versions })=>{
12
13
  const throwValidationError = true;
13
14
  let hasLocalizedField = false;
@@ -76,7 +77,7 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
76
77
  throw new InvalidConfiguration('Unique is not supported in Postgres for hasMany text fields.');
77
78
  }
78
79
  } else {
79
- targetTable[fieldName] = varchar(columnName);
80
+ targetTable[fieldName] = withDefault(varchar(columnName), field);
80
81
  }
81
82
  break;
82
83
  }
@@ -84,7 +85,7 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
84
85
  case 'code':
85
86
  case 'textarea':
86
87
  {
87
- targetTable[fieldName] = varchar(columnName);
88
+ targetTable[fieldName] = withDefault(varchar(columnName), field);
88
89
  break;
89
90
  }
90
91
  case 'number':
@@ -102,23 +103,23 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
102
103
  throw new InvalidConfiguration('Unique is not supported in Postgres for hasMany number fields.');
103
104
  }
104
105
  } else {
105
- targetTable[fieldName] = numeric(columnName);
106
+ targetTable[fieldName] = withDefault(numeric(columnName), field);
106
107
  }
107
108
  break;
108
109
  }
109
110
  case 'richText':
110
111
  case 'json':
111
112
  {
112
- targetTable[fieldName] = jsonb(columnName);
113
+ targetTable[fieldName] = withDefault(jsonb(columnName), field);
113
114
  break;
114
115
  }
115
116
  case 'date':
116
117
  {
117
- targetTable[fieldName] = timestamp(columnName, {
118
+ targetTable[fieldName] = withDefault(timestamp(columnName, {
118
119
  mode: 'string',
119
120
  precision: 3,
120
121
  withTimezone: true
121
- });
122
+ }), field);
122
123
  break;
123
124
  }
124
125
  case 'point':
@@ -136,7 +137,7 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
136
137
  target: 'enumName',
137
138
  throwValidationError
138
139
  });
139
- adapter.enums[enumName] = pgEnum(enumName, field.options.map((option)=>{
140
+ adapter.enums[enumName] = adapter.pgSchema.enum(enumName, field.options.map((option)=>{
140
141
  if (optionIsObject(option)) {
141
142
  return option.value;
142
143
  }
@@ -205,13 +206,13 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
205
206
  })
206
207
  }));
207
208
  } else {
208
- targetTable[fieldName] = adapter.enums[enumName](fieldName);
209
+ targetTable[fieldName] = withDefault(adapter.enums[enumName](fieldName), field);
209
210
  }
210
211
  break;
211
212
  }
212
213
  case 'checkbox':
213
214
  {
214
- targetTable[fieldName] = boolean(columnName);
215
+ targetTable[fieldName] = withDefault(boolean(columnName), field);
215
216
  break;
216
217
  }
217
218
  case 'array':
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n PgNumericBuilder,\n PgUUIDBuilder,\n PgVarcharBuilder,\n boolean,\n foreignKey,\n index,\n integer,\n jsonb,\n numeric,\n pgEnum,\n text,\n timestamp,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, PostgresAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { idToUUID } from './idToUUID.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\n\ntype Args = {\n adapter: PostgresAdapter\n columnPrefix?: string\n columns: Record<string, PgColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\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 relationsToBuild: RelationMap\n relationships: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: string\n rootTableName: string\n versions: 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 disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\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) parentIDColType = 'uuid'\n if (columns.id instanceof PgNumericBuilder) parentIDColType = 'numeric'\n if (columns.id instanceof PgVarcharBuilder) parentIDColType = 'varchar'\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') return\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n 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) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\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 targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n if (field.localized) {\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] = varchar(columnName)\n }\n break\n }\n case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = varchar(columnName)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n if (field.localized) {\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] = numeric(columnName)\n }\n break\n }\n\n case 'richText':\n case 'json': {\n targetTable[fieldName] = jsonb(columnName)\n break\n }\n\n case 'date': {\n targetTable[fieldName] = timestamp(columnName, {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n break\n }\n\n case 'point': {\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] = pgEnum(\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 if (field.localized) {\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] = adapter.enums[enumName](fieldName)\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = boolean(columnName)\n break\n }\n\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 if (field.localized && adapter.payload.config.localization) {\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 hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\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\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 _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\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 _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n if (field.localized && adapter.payload.config.localization) {\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 hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\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 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\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\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,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\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.fields,\n forceLocalized: field.localized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (tabHasLocalizedField) hasLocalizedField = true\n if (tabHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (tabHasManyTextField) hasManyTextField = true\n if (tabHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (tabHasManyNumberField) hasManyNumberField = true\n if (tabHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (rowHasLocalizedField) hasLocalizedField = true\n if (rowHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (rowHasManyTextField) hasManyTextField = true\n if (rowHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (rowHasManyNumberField) hasManyNumberField = true\n if (rowHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.type === 'relationship' && field.hasMany) {\n relationships.add(field.relationTo)\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') colType = 'numeric'\n if (relatedCollectionCustomID?.type === 'text') colType = 'varchar'\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,\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 if (adapter.payload.config.localization && field.localized) {\n hasLocalizedRelationshipField = true\n }\n\n break\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":["createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","PgNumericBuilder","PgUUIDBuilder","PgVarcharBuilder","boolean","foreignKey","index","integer","jsonb","numeric","pgEnum","text","timestamp","varchar","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","buildTable","createIndex","idToUUID","parentIDColumnMap","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentTableName","relationsToBuild","relationships","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","mode","precision","withTimezone","enumName","prefix","target","enums","options","map","option","value","selectTableName","versionsCustomName","baseColumns","order","notNull","parent","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","enum__locales","localeIdx","set","one","references","relationName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","required"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n PgNumericBuilder,\n PgUUIDBuilder,\n PgVarcharBuilder,\n boolean,\n foreignKey,\n index,\n integer,\n jsonb,\n numeric,\n text,\n timestamp,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, PostgresAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { idToUUID } from './idToUUID.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: PostgresAdapter\n columnPrefix?: string\n columns: Record<string, PgColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\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 relationsToBuild: RelationMap\n relationships: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: string\n rootTableName: string\n versions: 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 disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\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) parentIDColType = 'uuid'\n if (columns.id instanceof PgNumericBuilder) parentIDColType = 'numeric'\n if (columns.id instanceof PgVarcharBuilder) parentIDColType = 'varchar'\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') return\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n 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) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\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 targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n if (field.localized) {\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 case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = withDefault(varchar(columnName), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n if (field.localized) {\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 'richText':\n case 'json': {\n targetTable[fieldName] = withDefault(jsonb(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 'point': {\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 if (field.localized) {\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](fieldName), field)\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = withDefault(boolean(columnName), field)\n break\n }\n\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 if (field.localized && adapter.payload.config.localization) {\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 hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\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\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 _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\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 _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n if (field.localized && adapter.payload.config.localization) {\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 hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\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 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\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\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,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\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.fields,\n forceLocalized: field.localized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (tabHasLocalizedField) hasLocalizedField = true\n if (tabHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (tabHasManyTextField) hasManyTextField = true\n if (tabHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (tabHasManyNumberField) hasManyNumberField = true\n if (tabHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (rowHasLocalizedField) hasLocalizedField = true\n if (rowHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (rowHasManyTextField) hasManyTextField = true\n if (rowHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (rowHasManyNumberField) hasManyNumberField = true\n if (rowHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.type === 'relationship' && field.hasMany) {\n relationships.add(field.relationTo)\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') colType = 'numeric'\n if (relatedCollectionCustomID?.type === 'text') colType = 'varchar'\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,\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 if (adapter.payload.config.localization && field.localized) {\n hasLocalizedRelationshipField = true\n }\n\n break\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":["createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","PgNumericBuilder","PgUUIDBuilder","PgVarcharBuilder","boolean","foreignKey","index","integer","jsonb","numeric","text","timestamp","varchar","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","buildTable","createIndex","idToUUID","parentIDColumnMap","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentTableName","relationsToBuild","relationships","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","mode","precision","withTimezone","enumName","prefix","target","enums","pgSchema","enum","options","map","option","value","selectTableName","versionsCustomName","baseColumns","order","notNull","parent","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","enum__locales","localeIdx","set","one","references","relationName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","required"],"mappings":"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"}
@@ -0,0 +1,4 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../src/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,eAUF,CAAA"}
@@ -0,0 +1,10 @@
1
+ export const withDefault = (column, field)=>{
2
+ if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') return column;
3
+ if (typeof field.defaultValue === 'string' && field.defaultValue.includes("'")) {
4
+ const escapedString = field.defaultValue.replaceAll("'", "''");
5
+ return column.default(escapedString);
6
+ }
7
+ return column.default(field.defaultValue);
8
+ };
9
+
10
+ //# sourceMappingURL=withDefault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/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 if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAC7E,OAAOF;IAET,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,OAAOJ,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { BuildQueryJoinAliases, DrizzleAdapter, TransactionPg } from '@payl
3
3
  import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload';
4
4
  import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
5
5
  import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
6
- import type { PgColumn, PgEnum, PgInsertOnConflictDoUpdateConfig, PgSchema, PgTableWithColumns, PgTransactionConfig } from 'drizzle-orm/pg-core';
6
+ import type { PgColumn, PgEnum, PgInsertOnConflictDoUpdateConfig, PgSchema, PgTableWithColumns, PgTransactionConfig, pgEnum } from 'drizzle-orm/pg-core';
7
7
  import type { PgTableFn } from 'drizzle-orm/pg-core/table';
8
8
  import type { Payload, PayloadRequest } from 'payload';
9
9
  import type { Pool, PoolConfig, QueryResult } from 'pg';
@@ -63,6 +63,10 @@ export type Insert = (args: {
63
63
  values: Record<string, unknown> | Record<string, unknown>[];
64
64
  }) => Promise<Record<string, unknown>[]>;
65
65
  type PostgresDrizzleAdapter = Omit<DrizzleAdapter, 'countDistinct' | 'deleteWhere' | 'drizzle' | 'dropDatabase' | 'execute' | 'insert' | 'operators' | 'relations'>;
66
+ type Schema = {
67
+ enum: typeof pgEnum;
68
+ table: PgTableFn;
69
+ } | PgSchema;
66
70
  export type PostgresAdapter = {
67
71
  countDistinct: CountDistinct;
68
72
  defaultDrizzleSnapshot: DrizzleSnapshotJSON;
@@ -82,9 +86,7 @@ export type PostgresAdapter = {
82
86
  localesSuffix?: string;
83
87
  logger: DrizzleConfig['logger'];
84
88
  operators: Operators;
85
- pgSchema?: {
86
- table: PgTableFn;
87
- } | PgSchema;
89
+ pgSchema?: Schema;
88
90
  pool: Pool;
89
91
  poolOptions: Args['pool'];
90
92
  push: boolean;
@@ -92,7 +94,6 @@ export type PostgresAdapter = {
92
94
  relations: Record<string, GenericRelation>;
93
95
  relationshipsSuffix?: string;
94
96
  resolveInitializing: () => void;
95
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
96
97
  schemaName?: Args['schemaName'];
97
98
  sessions: {
98
99
  [id: string]: {
@@ -116,6 +117,7 @@ export type MigrateDownArgs = {
116
117
  };
117
118
  declare module 'payload' {
118
119
  interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
120
+ beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>;
119
121
  drizzle: PostgresDB;
120
122
  enums: Record<string, GenericEnum>;
121
123
  /**
@@ -136,7 +138,7 @@ declare module 'payload' {
136
138
  rejectInitializing: () => void;
137
139
  relationshipsSuffix?: string;
138
140
  resolveInitializing: () => void;
139
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
141
+ schema: Record<string, unknown>;
140
142
  schemaName?: Args['schemaName'];
141
143
  tableNameMap: Map<string, string>;
142
144
  versionsSuffix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type {\n BuildQueryJoinAliases,\n DrizzleAdapter,\n TransactionPg,\n} from '@payloadcms/drizzle/types'\nimport type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n Relation,\n Relations,\n SQL,\n} from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgEnum,\n PgInsertOnConflictDoUpdateConfig,\n PgSchema,\n PgTableWithColumns,\n PgTransactionConfig,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { Payload, PayloadRequest } from 'payload'\nimport type { Pool, PoolConfig, QueryResult } from 'pg'\n\nexport type Args = {\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n push?: boolean\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.\n */\n schemaName?: string\n transactionOptions?: PgTransactionConfig | false\n versionsSuffix?: string\n}\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type CountDistinct = (args: {\n db: PostgresDB | TransactionPg\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: PostgresDB | TransactionPg\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: PostgresAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: PostgresDB | TransactionPg\n drizzle?: PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) => Promise<QueryResult<Record<string, T>>>\n\nexport type Insert = (args: {\n db: PostgresDB | TransactionPg\n onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\ntype PostgresDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type PostgresAdapter = {\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: DrizzleSnapshotJSON\n deleteWhere: DeleteWhere\n drizzle: PostgresDB\n dropDatabase: DropDatabase\n enums: Record<string, GenericEnum>\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n sessions: {\n [id: string]: {\n db: PostgresDB | TransactionPg\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n} & PostgresDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type MigrateUpArgs = { payload: Payload; req?: Partial<PayloadRequest> }\nexport type MigrateDownArgs = { payload: Payload; req?: Partial<PayloadRequest> }\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n drizzle: PostgresDB\n enums: Record<string, GenericEnum>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAwJA,WAAiF"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type {\n BuildQueryJoinAliases,\n DrizzleAdapter,\n TransactionPg,\n} from '@payloadcms/drizzle/types'\nimport type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n Relation,\n Relations,\n SQL,\n} from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgEnum,\n PgInsertOnConflictDoUpdateConfig,\n PgSchema,\n PgTableWithColumns,\n PgTransactionConfig,\n pgEnum,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { Payload, PayloadRequest } from 'payload'\nimport type { Pool, PoolConfig, QueryResult } from 'pg'\n\nexport type Args = {\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n push?: boolean\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.\n */\n schemaName?: string\n transactionOptions?: PgTransactionConfig | false\n versionsSuffix?: string\n}\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type CountDistinct = (args: {\n db: PostgresDB | TransactionPg\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: PostgresDB | TransactionPg\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: PostgresAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: PostgresDB | TransactionPg\n drizzle?: PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) => Promise<QueryResult<Record<string, T>>>\n\nexport type Insert = (args: {\n db: PostgresDB | TransactionPg\n onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\ntype PostgresDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\ntype Schema =\n | {\n enum: typeof pgEnum\n table: PgTableFn\n }\n | PgSchema\n\nexport type PostgresAdapter = {\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: DrizzleSnapshotJSON\n deleteWhere: DeleteWhere\n drizzle: PostgresDB\n dropDatabase: DropDatabase\n enums: Record<string, GenericEnum>\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n pgSchema?: Schema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schemaName?: Args['schemaName']\n sessions: {\n [id: string]: {\n db: PostgresDB | TransactionPg\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n} & PostgresDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type MigrateUpArgs = { payload: Payload; req?: Partial<PayloadRequest> }\nexport type MigrateDownArgs = { payload: Payload; req?: Partial<PayloadRequest> }\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>\n drizzle: PostgresDB\n enums: Record<string, GenericEnum>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, unknown>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AA+JA,WAAiF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-postgres",
3
- "version": "3.0.0-beta.71",
3
+ "version": "3.0.0-beta.73",
4
4
  "description": "The officially supported Postgres database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -36,13 +36,13 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "console-table-printer": "2.11.2",
39
- "drizzle-kit": "0.20.14-1f2c838",
40
- "drizzle-orm": "0.29.4",
39
+ "drizzle-kit": "0.23.1-7816536",
40
+ "drizzle-orm": "0.32.1",
41
41
  "pg": "8.11.3",
42
42
  "prompts": "2.4.2",
43
43
  "to-snake-case": "1.0.0",
44
44
  "uuid": "10.0.0",
45
- "@payloadcms/drizzle": "3.0.0-beta.71"
45
+ "@payloadcms/drizzle": "3.0.0-beta.73"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
@@ -50,10 +50,10 @@
50
50
  "@types/to-snake-case": "1.0.0",
51
51
  "esbuild": "0.23.0",
52
52
  "@payloadcms/eslint-config": "3.0.0-beta.59",
53
- "payload": "3.0.0-beta.71"
53
+ "payload": "3.0.0-beta.73"
54
54
  },
55
55
  "peerDependencies": {
56
- "payload": "3.0.0-beta.71"
56
+ "payload": "3.0.0-beta.73"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm renamePredefinedMigrations",