@payloadcms/db-postgres 4.0.0-internal.e16cf59 → 4.0.0-internal.e55ccef
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/dist/connect.js.map +1 -1
- package/dist/exports/migration-utils.d.ts +2 -1
- package/dist/exports/migration-utils.d.ts.map +1 -1
- package/dist/exports/migration-utils.js +2 -1
- package/dist/exports/migration-utils.js.map +1 -1
- package/dist/predefinedMigrations/localize-status.d.ts +4 -0
- package/dist/predefinedMigrations/localize-status.d.ts.map +1 -0
- package/dist/predefinedMigrations/localize-status.js.map +1 -0
- package/dist/predefinedMigrations/localize-status.mjs +11 -0
- package/dist/predefinedMigrations/migrateLocalizeStatus.d.ts +16 -0
- package/dist/predefinedMigrations/migrateLocalizeStatus.d.ts.map +1 -0
- package/dist/predefinedMigrations/migrateLocalizeStatus.js.map +1 -0
- package/dist/predefinedMigrations/migrateLocalizeStatus.mjs +94 -0
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -11
- package/dist/exports/types-deprecated.d.ts +0 -14
- package/dist/exports/types-deprecated.d.ts.map +0 -1
- package/dist/exports/types-deprecated.js +0 -5
- package/dist/exports/types-deprecated.js.map +0 -1
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2018-
|
|
3
|
+
Copyright (c) 2018-2026 Payload CMS, LLC <info@payloadcms.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
6
|
a copy of this software and associated documentation files (the
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle
|
|
1
|
+
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle'\nimport type { Connect, Migration } from 'payload'\n\nimport { pushDevSchema } from '@payloadcms/drizzle'\nimport { drizzle } from 'drizzle-orm/node-postgres'\nimport { withReplicas } from 'drizzle-orm/pg-core'\n\nimport type { PostgresAdapter } from './types.js'\n\nconst connectWithReconnect = async function ({\n adapter,\n pool,\n reconnect = false,\n}: {\n adapter: PostgresAdapter\n pool: PostgresAdapter['pool']\n reconnect?: boolean\n}) {\n let result\n\n if (!reconnect) {\n result = await pool.connect()\n } else {\n try {\n result = await pool.connect()\n } catch (ignore) {\n setTimeout(() => {\n adapter.payload.logger.info('Reconnecting to postgres')\n void connectWithReconnect({ adapter, pool, 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, pool, reconnect: true })\n }\n } catch (ignore) {\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 try {\n if (!this.pool) {\n this.pool = new this.pg.Pool(this.poolOptions)\n await connectWithReconnect({ adapter: this, pool: this.pool })\n }\n\n const logger = this.logger || false\n this.drizzle = drizzle({ client: this.pool, logger, schema: this.schema })\n\n if (this.readReplicaOptions) {\n this.primaryDrizzle = this.drizzle as any\n const readReplicas = this.readReplicaOptions.map((connectionString) => {\n const options = {\n ...this.poolOptions,\n connectionString,\n }\n const pool = new this.pg.Pool(options)\n void connectWithReconnect({\n adapter: this,\n pool,\n })\n return drizzle({ client: pool, logger, schema: this.schema })\n })\n const myReplicas = withReplicas(this.drizzle, readReplicas as any)\n this.drizzle = myReplicas\n }\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 (error) {\n const err = error instanceof Error ? error : new Error(String(error))\n if (err.message?.match(/database .* does not exist/i) && !this.disableCreateDatabase) {\n // capitalize first char of the err msg\n this.payload.logger.info(\n `${err.message.charAt(0).toUpperCase() + err.message.slice(1)}, creating...`,\n )\n const isCreated = await this.createDatabase()\n\n if (isCreated && this.connect) {\n await this.connect(options)\n return\n }\n } else {\n this.payload.logger.error({\n err,\n msg: `Error: cannot connect to Postgres. Details: ${err.message}`,\n })\n }\n\n if (typeof this.rejectInitializing === 'function') {\n this.rejectInitializing()\n }\n throw new Error(`Error: cannot connect to Postgres: ${err.message}`)\n }\n\n await this.createExtensions()\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') {\n this.resolveInitializing()\n }\n\n if (process.env.NODE_ENV === 'production' && this.prodMigrations) {\n await this.migrate({ migrations: this.prodMigrations as unknown as Migration[] })\n }\n}\n"],"names":["pushDevSchema","drizzle","withReplicas","connectWithReconnect","adapter","pool","reconnect","result","connect","ignore","setTimeout","payload","logger","info","prependListener","err","code","options","hotReload","pg","Pool","poolOptions","client","schema","readReplicaOptions","primaryDrizzle","readReplicas","map","connectionString","myReplicas","process","env","PAYLOAD_DROP_DATABASE","schemaName","dropDatabase","error","Error","String","message","match","disableCreateDatabase","charAt","toUpperCase","slice","isCreated","createDatabase","msg","rejectInitializing","createExtensions","NODE_ENV","PAYLOAD_MIGRATING","push","resolveInitializing","prodMigrations","migrate","migrations"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
|
|
1
2
|
export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
|
|
2
|
-
export { migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
3
|
+
export { migratePostgresLocalizeStatus, migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
3
4
|
//# sourceMappingURL=migration-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-utils.d.ts","sourceRoot":"","sources":["../../src/exports/migration-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"migration-utils.d.ts","sourceRoot":"","sources":["../../src/exports/migration-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
|
|
1
2
|
export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
|
|
2
|
-
export { migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
3
|
+
export { migratePostgresLocalizeStatus, migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
3
4
|
|
|
4
5
|
//# sourceMappingURL=migration-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/migration-utils.ts"],"sourcesContent":["export { getBlocksToJsonMigrator } from '@payloadcms/drizzle'\nexport { migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres'\n"],"names":["getBlocksToJsonMigrator","migratePostgresV2toV3"],"mappings":"AAAA,SAASA,uBAAuB,QAAQ,sBAAqB;AAC7D,SAASC,qBAAqB,QAAQ,+BAA8B"}
|
|
1
|
+
{"version":3,"sources":["../../src/exports/migration-utils.ts"],"sourcesContent":["export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js'\nexport { getBlocksToJsonMigrator } from '@payloadcms/drizzle'\nexport { migratePostgresLocalizeStatus, migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres'\n"],"names":["migrateLocalizeStatus","getBlocksToJsonMigrator","migratePostgresLocalizeStatus","migratePostgresV2toV3"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,mDAAkD;AACxF,SAASC,uBAAuB,QAAQ,sBAAqB;AAC7D,SAASC,6BAA6B,EAAEC,qBAAqB,QAAQ,+BAA8B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
declare const imports = "import { migrateLocalizeStatus } from '@payloadcms/db-postgres/migration-utils'";
|
|
2
|
+
declare const upSQL = " await migrateLocalizeStatus({\n db,\n payload,\n req,\n sql,\n })\n";
|
|
3
|
+
export { imports, upSQL };
|
|
4
|
+
//# sourceMappingURL=localize-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize-status.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/localize-status.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,OAAO,oFAAoF,CAAA;AACjG,QAAA,MAAM,KAAK,8GAMV,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/predefinedMigrations/localize-status.ts"],"sourcesContent":["const imports = `import { migrateLocalizeStatus } from '@payloadcms/db-postgres/migration-utils'`\nconst upSQL = ` await migrateLocalizeStatus({\n db,\n payload,\n req,\n sql,\n })\n`\n\nexport { imports, upSQL }\n"],"names":["imports","upSQL"],"mappings":"AAAA,MAAMA,UAAU,CAAC,+EAA+E,CAAC;AACjG,MAAMC,QAAQ,CAAC;;;;;;AAMf,CAAC;AAED,SAASD,OAAO,EAAEC,KAAK,GAAE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const imports = `import { migrateLocalizeStatus } from '@payloadcms/db-postgres/migration-utils'`;
|
|
2
|
+
const upSQL = ` await migrateLocalizeStatus({
|
|
3
|
+
db,
|
|
4
|
+
payload,
|
|
5
|
+
req,
|
|
6
|
+
sql,
|
|
7
|
+
})
|
|
8
|
+
`;
|
|
9
|
+
export { imports, upSQL };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=localize-status.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Payload, PayloadRequest } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Migrate all collections and globals with per-locale status enabled to use per-locale _status.
|
|
4
|
+
*
|
|
5
|
+
* This migration:
|
|
6
|
+
* 1. Converts version._status from a scalar string to a locale-keyed object for each entity
|
|
7
|
+
* 2. Deletes all snapshot=true rows from each version table
|
|
8
|
+
* 3. Drops the `snapshot` column from each version table
|
|
9
|
+
*/
|
|
10
|
+
export declare function migrateLocalizeStatus({ db, payload, req, sql, }: {
|
|
11
|
+
db: any;
|
|
12
|
+
payload: Payload;
|
|
13
|
+
req: PayloadRequest;
|
|
14
|
+
sql: any;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=migrateLocalizeStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateLocalizeStatus.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/migrateLocalizeStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKtD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,EAAE,EACF,OAAO,EACP,GAAG,EACH,GAAG,GACJ,EAAE;IACD,EAAE,EAAE,GAAG,CAAA;IACP,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,GAAG,CAAA;CACT,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/predefinedMigrations/migrateLocalizeStatus.ts"],"sourcesContent":["import type { Payload, PayloadRequest } from 'payload'\n\nimport { migratePostgresLocalizeStatus } from '@payloadcms/drizzle/postgres'\nimport { toSnakeCase } from 'payload/migrations'\n\n/**\n * Migrate all collections and globals with per-locale status enabled to use per-locale _status.\n *\n * This migration:\n * 1. Converts version._status from a scalar string to a locale-keyed object for each entity\n * 2. Deletes all snapshot=true rows from each version table\n * 3. Drops the `snapshot` column from each version table\n */\nexport async function migrateLocalizeStatus({\n db,\n payload,\n req,\n sql,\n}: {\n db: any\n payload: Payload\n req: PayloadRequest\n sql: any\n}): Promise<void> {\n if (!payload.config.localization) {\n payload.logger.info({\n msg: 'Localization not enabled, skipping localize-status migration',\n })\n return\n }\n\n const collections = payload.config.collections.filter(\n (c) =>\n c.versions?.drafts &&\n typeof c.versions.drafts === 'object' &&\n c.versions.drafts.localizeStatus,\n )\n const globals = payload.config.globals.filter(\n (g) =>\n g.versions?.drafts &&\n typeof g.versions.drafts === 'object' &&\n g.versions.drafts.localizeStatus,\n )\n\n payload.logger.info({\n msg: `Starting localize-status migration for ${collections.length} collection(s) and ${globals.length} global(s)`,\n })\n\n for (const collection of collections) {\n await migratePostgresLocalizeStatus({ collectionSlug: collection.slug, db, payload, req, sql })\n await _cleanupSnapshotColumn({\n db,\n payload,\n sql,\n versionsTable: `_${toSnakeCase(collection.slug)}_v`,\n })\n }\n\n for (const global of globals) {\n await migratePostgresLocalizeStatus({ db, globalSlug: global.slug, payload, req, sql })\n await _cleanupSnapshotColumn({\n db,\n payload,\n sql,\n versionsTable: `_${toSnakeCase(global.slug)}_v`,\n })\n }\n\n payload.logger.info({ msg: 'localize-status migration completed successfully' })\n}\n\nasync function _cleanupSnapshotColumn({\n db,\n payload,\n sql,\n versionsTable,\n}: {\n db: any\n payload: Payload\n sql: any\n versionsTable: string\n}): Promise<void> {\n const schemaName = db.schemaName ?? 'public'\n\n const columnCheck = await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n SELECT EXISTS (\n SELECT FROM information_schema.columns\n WHERE table_schema = ${schemaName}\n AND table_name = ${versionsTable}\n AND column_name = 'snapshot'\n ) as exists\n `,\n })\n\n if (!columnCheck.rows[0]?.exists) {\n return\n }\n\n const deleteResult = await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n DELETE FROM ${sql.identifier(versionsTable)} WHERE snapshot = true\n `,\n })\n\n if (deleteResult.rowCount > 0) {\n payload.logger.info({\n msg: `Deleted ${deleteResult.rowCount} snapshot rows from ${versionsTable}`,\n })\n }\n\n await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n ALTER TABLE ${sql.identifier(versionsTable)} DROP COLUMN snapshot\n `,\n })\n\n payload.logger.info({ msg: `Dropped snapshot column from ${versionsTable}` })\n}\n"],"names":["migratePostgresLocalizeStatus","toSnakeCase","migrateLocalizeStatus","db","payload","req","sql","config","localization","logger","info","msg","collections","filter","c","versions","drafts","localizeStatus","globals","g","length","collection","collectionSlug","slug","_cleanupSnapshotColumn","versionsTable","global","globalSlug","schemaName","columnCheck","execute","drizzle","rows","exists","deleteResult","identifier","rowCount"],"mappings":"AAEA,SAASA,6BAA6B,QAAQ,+BAA8B;AAC5E,SAASC,WAAW,QAAQ,qBAAoB;AAEhD;;;;;;;CAOC,GACD,OAAO,eAAeC,sBAAsB,EAC1CC,EAAE,EACFC,OAAO,EACPC,GAAG,EACHC,GAAG,EAMJ;IACC,IAAI,CAACF,QAAQG,MAAM,CAACC,YAAY,EAAE;QAChCJ,QAAQK,MAAM,CAACC,IAAI,CAAC;YAClBC,KAAK;QACP;QACA;IACF;IAEA,MAAMC,cAAcR,QAAQG,MAAM,CAACK,WAAW,CAACC,MAAM,CACnD,CAACC,IACCA,EAAEC,QAAQ,EAAEC,UACZ,OAAOF,EAAEC,QAAQ,CAACC,MAAM,KAAK,YAC7BF,EAAEC,QAAQ,CAACC,MAAM,CAACC,cAAc;IAEpC,MAAMC,UAAUd,QAAQG,MAAM,CAACW,OAAO,CAACL,MAAM,CAC3C,CAACM,IACCA,EAAEJ,QAAQ,EAAEC,UACZ,OAAOG,EAAEJ,QAAQ,CAACC,MAAM,KAAK,YAC7BG,EAAEJ,QAAQ,CAACC,MAAM,CAACC,cAAc;IAGpCb,QAAQK,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,uCAAuC,EAAEC,YAAYQ,MAAM,CAAC,mBAAmB,EAAEF,QAAQE,MAAM,CAAC,UAAU,CAAC;IACnH;IAEA,KAAK,MAAMC,cAAcT,YAAa;QACpC,MAAMZ,8BAA8B;YAAEsB,gBAAgBD,WAAWE,IAAI;YAAEpB;YAAIC;YAASC;YAAKC;QAAI;QAC7F,MAAMkB,uBAAuB;YAC3BrB;YACAC;YACAE;YACAmB,eAAe,CAAC,CAAC,EAAExB,YAAYoB,WAAWE,IAAI,EAAE,EAAE,CAAC;QACrD;IACF;IAEA,KAAK,MAAMG,UAAUR,QAAS;QAC5B,MAAMlB,8BAA8B;YAAEG;YAAIwB,YAAYD,OAAOH,IAAI;YAAEnB;YAASC;YAAKC;QAAI;QACrF,MAAMkB,uBAAuB;YAC3BrB;YACAC;YACAE;YACAmB,eAAe,CAAC,CAAC,EAAExB,YAAYyB,OAAOH,IAAI,EAAE,EAAE,CAAC;QACjD;IACF;IAEAnB,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK;IAAmD;AAChF;AAEA,eAAea,uBAAuB,EACpCrB,EAAE,EACFC,OAAO,EACPE,GAAG,EACHmB,aAAa,EAMd;IACC,MAAMG,aAAazB,GAAGyB,UAAU,IAAI;IAEpC,MAAMC,cAAc,MAAM1B,GAAG2B,OAAO,CAAC;QACnCC,SAAS5B,GAAG4B,OAAO;QACnBzB,KAAKA,GAAG,CAAC;;;6BAGgB,EAAEsB,WAAW;yBACjB,EAAEH,cAAc;;;IAGrC,CAAC;IACH;IAEA,IAAI,CAACI,YAAYG,IAAI,CAAC,EAAE,EAAEC,QAAQ;QAChC;IACF;IAEA,MAAMC,eAAe,MAAM/B,GAAG2B,OAAO,CAAC;QACpCC,SAAS5B,GAAG4B,OAAO;QACnBzB,KAAKA,GAAG,CAAC;kBACK,EAAEA,IAAI6B,UAAU,CAACV,eAAe;IAC9C,CAAC;IACH;IAEA,IAAIS,aAAaE,QAAQ,GAAG,GAAG;QAC7BhC,QAAQK,MAAM,CAACC,IAAI,CAAC;YAClBC,KAAK,CAAC,QAAQ,EAAEuB,aAAaE,QAAQ,CAAC,oBAAoB,EAAEX,eAAe;QAC7E;IACF;IAEA,MAAMtB,GAAG2B,OAAO,CAAC;QACfC,SAAS5B,GAAG4B,OAAO;QACnBzB,KAAKA,GAAG,CAAC;kBACK,EAAEA,IAAI6B,UAAU,CAACV,eAAe;IAC9C,CAAC;IACH;IAEArB,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK,CAAC,6BAA6B,EAAEc,eAAe;IAAC;AAC7E"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { migratePostgresLocalizeStatus } from '@payloadcms/drizzle/postgres';
|
|
2
|
+
import { toSnakeCase } from 'payload/migrations';
|
|
3
|
+
/**
|
|
4
|
+
* Migrate all collections and globals with per-locale status enabled to use per-locale _status.
|
|
5
|
+
*
|
|
6
|
+
* This migration:
|
|
7
|
+
* 1. Converts version._status from a scalar string to a locale-keyed object for each entity
|
|
8
|
+
* 2. Deletes all snapshot=true rows from each version table
|
|
9
|
+
* 3. Drops the `snapshot` column from each version table
|
|
10
|
+
*/ export async function migrateLocalizeStatus({ db, payload, req, sql }) {
|
|
11
|
+
if (!payload.config.localization) {
|
|
12
|
+
payload.logger.info({
|
|
13
|
+
msg: 'Localization not enabled, skipping localize-status migration'
|
|
14
|
+
});
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const collections = payload.config.collections.filter((c)=>c.versions?.drafts && typeof c.versions.drafts === 'object' && c.versions.drafts.localizeStatus);
|
|
18
|
+
const globals = payload.config.globals.filter((g)=>g.versions?.drafts && typeof g.versions.drafts === 'object' && g.versions.drafts.localizeStatus);
|
|
19
|
+
payload.logger.info({
|
|
20
|
+
msg: `Starting localize-status migration for ${collections.length} collection(s) and ${globals.length} global(s)`
|
|
21
|
+
});
|
|
22
|
+
for (const collection of collections){
|
|
23
|
+
await migratePostgresLocalizeStatus({
|
|
24
|
+
collectionSlug: collection.slug,
|
|
25
|
+
db,
|
|
26
|
+
payload,
|
|
27
|
+
req,
|
|
28
|
+
sql
|
|
29
|
+
});
|
|
30
|
+
await _cleanupSnapshotColumn({
|
|
31
|
+
db,
|
|
32
|
+
payload,
|
|
33
|
+
sql,
|
|
34
|
+
versionsTable: `_${toSnakeCase(collection.slug)}_v`
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
for (const global of globals){
|
|
38
|
+
await migratePostgresLocalizeStatus({
|
|
39
|
+
db,
|
|
40
|
+
globalSlug: global.slug,
|
|
41
|
+
payload,
|
|
42
|
+
req,
|
|
43
|
+
sql
|
|
44
|
+
});
|
|
45
|
+
await _cleanupSnapshotColumn({
|
|
46
|
+
db,
|
|
47
|
+
payload,
|
|
48
|
+
sql,
|
|
49
|
+
versionsTable: `_${toSnakeCase(global.slug)}_v`
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
payload.logger.info({
|
|
53
|
+
msg: 'localize-status migration completed successfully'
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async function _cleanupSnapshotColumn({ db, payload, sql, versionsTable }) {
|
|
57
|
+
const schemaName = db.schemaName ?? 'public';
|
|
58
|
+
const columnCheck = await db.execute({
|
|
59
|
+
drizzle: db.drizzle,
|
|
60
|
+
sql: sql`
|
|
61
|
+
SELECT EXISTS (
|
|
62
|
+
SELECT FROM information_schema.columns
|
|
63
|
+
WHERE table_schema = ${schemaName}
|
|
64
|
+
AND table_name = ${versionsTable}
|
|
65
|
+
AND column_name = 'snapshot'
|
|
66
|
+
) as exists
|
|
67
|
+
`
|
|
68
|
+
});
|
|
69
|
+
if (!columnCheck.rows[0]?.exists) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const deleteResult = await db.execute({
|
|
73
|
+
drizzle: db.drizzle,
|
|
74
|
+
sql: sql`
|
|
75
|
+
DELETE FROM ${sql.identifier(versionsTable)} WHERE snapshot = true
|
|
76
|
+
`
|
|
77
|
+
});
|
|
78
|
+
if (deleteResult.rowCount > 0) {
|
|
79
|
+
payload.logger.info({
|
|
80
|
+
msg: `Deleted ${deleteResult.rowCount} snapshot rows from ${versionsTable}`
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
await db.execute({
|
|
84
|
+
drizzle: db.drizzle,
|
|
85
|
+
sql: sql`
|
|
86
|
+
ALTER TABLE ${sql.identifier(versionsTable)} DROP COLUMN snapshot
|
|
87
|
+
`
|
|
88
|
+
});
|
|
89
|
+
payload.logger.info({
|
|
90
|
+
msg: `Dropped snapshot column from ${versionsTable}`
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=migrateLocalizeStatus.js.map
|
package/dist/types.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ export type PostgresAdapter = {
|
|
|
82
82
|
poolOptions: PoolConfig;
|
|
83
83
|
} & BasePostgresAdapter;
|
|
84
84
|
declare module 'payload' {
|
|
85
|
-
interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
|
|
85
|
+
interface DatabaseAdapter extends Omit<Args, 'extensions' | 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
|
|
86
86
|
afterSchemaInit: PostgresSchemaHook[];
|
|
87
87
|
beforeSchemaInit: PostgresSchemaHook[];
|
|
88
88
|
beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>;
|
|
@@ -94,7 +94,7 @@ declare module 'payload' {
|
|
|
94
94
|
* Used for returning properly formed errors from unique fields
|
|
95
95
|
*/
|
|
96
96
|
fieldConstraints: Record<string, Record<string, string>>;
|
|
97
|
-
idType: Args['idType']
|
|
97
|
+
idType: NonNullable<Args['idType']>;
|
|
98
98
|
initializing: Promise<void>;
|
|
99
99
|
localesSuffix?: string;
|
|
100
100
|
logger: DrizzleConfig['logger'];
|
|
@@ -111,13 +111,16 @@ declare module 'payload' {
|
|
|
111
111
|
up: (args: MigrateUpArgs) => Promise<void>;
|
|
112
112
|
}[];
|
|
113
113
|
push: boolean;
|
|
114
|
+
readReplicasAfterWriteInterval: number;
|
|
114
115
|
rejectInitializing: () => void;
|
|
115
116
|
relationshipsSuffix?: string;
|
|
116
117
|
resolveInitializing: () => void;
|
|
117
118
|
schema: Record<string, unknown>;
|
|
118
119
|
schemaName?: Args['schemaName'];
|
|
120
|
+
sessions: DrizzleAdapter['sessions'];
|
|
119
121
|
tableNameMap: Map<string, string>;
|
|
120
122
|
tablesFilter?: string[];
|
|
123
|
+
transactionOptions: PgTransactionConfig | undefined;
|
|
121
124
|
versionsSuffix?: string;
|
|
122
125
|
}
|
|
123
126
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,aAAa,EACb,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAE1C,KAAK,YAAY,GAAG,OAAO,EAAE,CAAA;AAE7B,MAAM,MAAM,IAAI,GAAG;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACtC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACvC;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iEAAiE;IACjE,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,EAAE,CAAC,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC3C,EAAE,CAAA;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB;;;;;OAKG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAA;IAChD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,QAAQ,SAAS,MAAM,CAAC,GAChD,CAAC,CAAC,QAAQ,CAAC,GACX,uBAAuB,CAAC,eAAe,CAAC,CAAA;AAE5C,KAAK,OAAO,GACR,cAAc,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,GAC1D,cAAc,CAAC,cAAc,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAA;AAE9E,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,YAAY,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,UAAU,CAAA;CACxB,GAAG,mBAAmB,CAAA;AAEvB,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eACf,SAAQ,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC,EAC9E,cAAc;QAChB,eAAe,EAAE,kBAAkB,EAAE,CAAA;QAErC,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;QACtC,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;QACpF,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACnC;;;WAGG;QACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACxD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/B,sIAAsI;QACtI,EAAE,CAAC,EAAE,YAAY,CAAA;QACjB,QAAQ,CAAC,EAAE;YAAE,KAAK,EAAE,SAAS,CAAA;SAAE,GAAG,QAAQ,CAAA;QAC1C,IAAI,EAAE,IAAI,CAAA;QACV,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,cAAc,CAAC,EAAE;YACf,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,EAAE,MAAM,CAAA;YACZ,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;SAC3C,EAAE,CAAA;QACH,IAAI,EAAE,OAAO,CAAA;QACb,8BAA8B,EAAE,MAAM,CAAA;QACtC,kBAAkB,EAAE,MAAM,IAAI,CAAA;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,mBAAmB,EAAE,MAAM,IAAI,CAAA;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAC/B,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;QACpC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,kBAAkB,EAAE,mBAAmB,GAAG,SAAS,CAAA;QACnD,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB;CACF"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle'\nimport type {\n BasePostgresAdapter,\n GenericEnum,\n MigrateDownArgs,\n MigrateUpArgs,\n PostgresSchemaHook,\n} from '@payloadcms/drizzle/postgres'\nimport type { DrizzleConfig } from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type { PgSchema, PgTableFn, PgTransactionConfig, PgWithReplicas } from 'drizzle-orm/pg-core'\nimport type pg from 'pg'\nimport type { Pool, PoolConfig } from 'pg'\n\ntype PgDependency = typeof pg\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: PostgresSchemaHook[]\n /**\n * Enable this flag if you want to thread your own ID to create operation data, for example:\n * ```ts\n * // doc created with id 1\n * const doc = await payload.create({ collection: 'posts', data: {id: 1, title: \"my title\"}})\n * ```\n */\n allowIDOnCreate?: boolean\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: PostgresSchemaHook[]\n /**\n * Store blocks as JSON column instead of storing them in relational structure.\n */\n blocksAsJSON?: boolean\n /**\n * Pass `true` to disale auto database creation if it doesn't exist.\n * @default false\n */\n disableCreateDatabase?: boolean\n extensions?: string[]\n /** Generated schema from payload generate:db-schema file path */\n generateSchemaOutputFile?: string\n idType?: 'serial' | 'uuid' | 'uuidv7'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pg?: PgDependency\n pool: PoolConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n readReplicas?: string[]\n /**\n * How long (ms) after a write to keep routing reads to the primary instead\n * of a read replica. Prevents stale reads caused by replication lag.\n * Only relevant when `readReplicas` is set.\n * @default 2000\n */\n readReplicasAfterWriteInterval?: number\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n *\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 tablesFilter?: string[]\n transactionOptions?: false | PgTransactionConfig\n versionsSuffix?: string\n}\n\nexport interface GeneratedDatabaseSchema {\n schemaUntyped: Record<string, unknown>\n}\n\ntype ResolveSchemaType<T> = 'schema' extends keyof T\n ? T['schema']\n : GeneratedDatabaseSchema['schemaUntyped']\n\ntype Drizzle =\n | NodePgDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>\n | PgWithReplicas<NodePgDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>>\n\nexport type PostgresAdapter = {\n drizzle: Drizzle\n pg: PgDependency\n pool: Pool\n poolOptions: PoolConfig\n} & BasePostgresAdapter\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n afterSchemaInit: PostgresSchemaHook[]\n\n beforeSchemaInit: PostgresSchemaHook[]\n beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>\n drizzle: Drizzle\n enums: Record<string, GenericEnum>\n extensions: Record<string, boolean>\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']
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle'\nimport type {\n BasePostgresAdapter,\n GenericEnum,\n MigrateDownArgs,\n MigrateUpArgs,\n PostgresSchemaHook,\n} from '@payloadcms/drizzle/postgres'\nimport type { DrizzleConfig } from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type { PgSchema, PgTableFn, PgTransactionConfig, PgWithReplicas } from 'drizzle-orm/pg-core'\nimport type pg from 'pg'\nimport type { Pool, PoolConfig } from 'pg'\n\ntype PgDependency = typeof pg\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: PostgresSchemaHook[]\n /**\n * Enable this flag if you want to thread your own ID to create operation data, for example:\n * ```ts\n * // doc created with id 1\n * const doc = await payload.create({ collection: 'posts', data: {id: 1, title: \"my title\"}})\n * ```\n */\n allowIDOnCreate?: boolean\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: PostgresSchemaHook[]\n /**\n * Store blocks as JSON column instead of storing them in relational structure.\n */\n blocksAsJSON?: boolean\n /**\n * Pass `true` to disale auto database creation if it doesn't exist.\n * @default false\n */\n disableCreateDatabase?: boolean\n extensions?: string[]\n /** Generated schema from payload generate:db-schema file path */\n generateSchemaOutputFile?: string\n idType?: 'serial' | 'uuid' | 'uuidv7'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pg?: PgDependency\n pool: PoolConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n readReplicas?: string[]\n /**\n * How long (ms) after a write to keep routing reads to the primary instead\n * of a read replica. Prevents stale reads caused by replication lag.\n * Only relevant when `readReplicas` is set.\n * @default 2000\n */\n readReplicasAfterWriteInterval?: number\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n *\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 tablesFilter?: string[]\n transactionOptions?: false | PgTransactionConfig\n versionsSuffix?: string\n}\n\nexport interface GeneratedDatabaseSchema {\n schemaUntyped: Record<string, unknown>\n}\n\ntype ResolveSchemaType<T> = 'schema' extends keyof T\n ? T['schema']\n : GeneratedDatabaseSchema['schemaUntyped']\n\ntype Drizzle =\n | NodePgDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>\n | PgWithReplicas<NodePgDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>>\n\nexport type PostgresAdapter = {\n drizzle: Drizzle\n pg: PgDependency\n pool: Pool\n poolOptions: PoolConfig\n} & BasePostgresAdapter\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'extensions' | 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n afterSchemaInit: PostgresSchemaHook[]\n\n beforeSchemaInit: PostgresSchemaHook[]\n beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>\n drizzle: Drizzle\n enums: Record<string, GenericEnum>\n extensions: Record<string, boolean>\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: NonNullable<Args['idType']>\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n /** Optionally inject your own node-postgres. This is required if you wish to instrument the driver with @payloadcms/plugin-sentry. */\n pg?: PgDependency\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n readReplicasAfterWriteInterval: number\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, unknown>\n schemaName?: Args['schemaName']\n sessions: DrizzleAdapter['sessions']\n tableNameMap: Map<string, string>\n tablesFilter?: string[]\n transactionOptions: PgTransactionConfig | undefined\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AA6FA,WAKuB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-postgres",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.e55ccef",
|
|
4
4
|
"description": "The officially supported Postgres database adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -25,11 +25,6 @@
|
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
26
|
"default": "./dist/index.js"
|
|
27
27
|
},
|
|
28
|
-
"./types": {
|
|
29
|
-
"import": "./dist/exports/types-deprecated.js",
|
|
30
|
-
"types": "./dist/exports/types-deprecated.d.ts",
|
|
31
|
-
"default": "./dist/exports/types-deprecated.js"
|
|
32
|
-
},
|
|
33
28
|
"./migration-utils": {
|
|
34
29
|
"import": "./dist/exports/migration-utils.js",
|
|
35
30
|
"types": "./dist/exports/migration-utils.d.ts",
|
|
@@ -64,24 +59,24 @@
|
|
|
64
59
|
],
|
|
65
60
|
"dependencies": {
|
|
66
61
|
"@types/pg": "8.20.0",
|
|
67
|
-
"console-table-printer": "2.
|
|
62
|
+
"console-table-printer": "2.15.0",
|
|
68
63
|
"drizzle-kit": "0.31.7",
|
|
69
64
|
"drizzle-orm": "0.45.2",
|
|
70
65
|
"pg": "8.20.0",
|
|
71
66
|
"prompts": "2.4.2",
|
|
72
67
|
"to-snake-case": "1.0.0",
|
|
73
68
|
"uuid": "14.0.0",
|
|
74
|
-
"@payloadcms/drizzle": "4.0.0-internal.
|
|
69
|
+
"@payloadcms/drizzle": "4.0.0-internal.e55ccef"
|
|
75
70
|
},
|
|
76
71
|
"devDependencies": {
|
|
77
72
|
"@hyrious/esbuild-plugin-commonjs": "0.2.6",
|
|
78
73
|
"@types/to-snake-case": "1.0.0",
|
|
79
74
|
"esbuild": "0.27.1",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
75
|
+
"payload": "4.0.0-internal.e55ccef",
|
|
76
|
+
"@payloadcms/eslint-config": "3.28.0"
|
|
82
77
|
},
|
|
83
78
|
"peerDependencies": {
|
|
84
|
-
"payload": "4.0.0-internal.
|
|
79
|
+
"payload": "4.0.0-internal.e55ccef"
|
|
85
80
|
},
|
|
86
81
|
"scripts": {
|
|
87
82
|
"build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm renamePredefinedMigrations",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Args as _Args, GeneratedDatabaseSchema as _GeneratedDatabaseSchema, PostgresAdapter as _PostgresAdapter } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated - import from `@payloadcms/db-postgres` instead
|
|
4
|
-
*/
|
|
5
|
-
export type Args = _Args;
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated - import from `@payloadcms/db-postgres` instead
|
|
8
|
-
*/
|
|
9
|
-
export type GeneratedDatabaseSchema = _GeneratedDatabaseSchema;
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated - import from `@payloadcms/db-postgres` instead
|
|
12
|
-
*/
|
|
13
|
-
export type PostgresAdapter = _PostgresAdapter;
|
|
14
|
-
//# sourceMappingURL=types-deprecated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-deprecated.d.ts","sourceRoot":"","sources":["../../src/exports/types-deprecated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,IAAI,KAAK,EACb,uBAAuB,IAAI,wBAAwB,EACnD,eAAe,IAAI,gBAAgB,EACpC,MAAM,aAAa,CAAA;AAEpB;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,KAAK,CAAA;AAExB;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAA;AAE9D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/types-deprecated.ts"],"sourcesContent":["import type {\n Args as _Args,\n GeneratedDatabaseSchema as _GeneratedDatabaseSchema,\n PostgresAdapter as _PostgresAdapter,\n} from '../types.js'\n\n/**\n * @deprecated - import from `@payloadcms/db-postgres` instead\n */\nexport type Args = _Args\n\n/**\n * @deprecated - import from `@payloadcms/db-postgres` instead\n */\nexport type GeneratedDatabaseSchema = _GeneratedDatabaseSchema\n\n/**\n * @deprecated - import from `@payloadcms/db-postgres` instead\n */\nexport type PostgresAdapter = _PostgresAdapter\n"],"names":[],"mappings":"AAgBA;;CAEC,GACD,WAA8C"}
|