@payloadcms/db-postgres 4.0.0-canary.37 → 4.0.0-canary.38
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/dist/exports/migration-utils.d.ts +1 -0
- package/dist/exports/migration-utils.d.ts.map +1 -1
- package/dist/exports/migration-utils.js +1 -0
- package/dist/exports/migration-utils.js.map +1 -1
- package/dist/predefinedMigrations/blocks-as-json.js +6 -0
- package/dist/predefinedMigrations/localize-status.js +11 -0
- package/dist/predefinedMigrations/migrateLocalizeStatus.js +94 -0
- package/dist/predefinedMigrations/relationships-v2-v3.js +11 -0
- package/dist/predefinedMigrations/sizes-to-variants.d.ts +3 -0
- package/dist/predefinedMigrations/sizes-to-variants.d.ts.map +1 -0
- package/dist/predefinedMigrations/sizes-to-variants.js +6 -0
- package/dist/predefinedMigrations/sizes-to-variants.js.map +1 -0
- package/dist/predefinedMigrations/sizes-to-variants.mjs +6 -0
- package/package.json +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
|
|
2
2
|
export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
|
|
3
3
|
export { migratePostgresLocalizeStatus, migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
4
|
+
export { migratePostgresSizesToVariants as migrateSizesToVariants } from '@payloadcms/drizzle/postgres';
|
|
4
5
|
//# 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,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,6BAA6B,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;AACnG,OAAO,EAAE,8BAA8B,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
|
|
2
2
|
export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
|
|
3
3
|
export { migratePostgresLocalizeStatus, migratePostgresV2toV3 } from '@payloadcms/drizzle/postgres';
|
|
4
|
+
export { migratePostgresSizesToVariants as migrateSizesToVariants } from '@payloadcms/drizzle/postgres';
|
|
4
5
|
|
|
5
6
|
//# sourceMappingURL=migration-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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'\nexport { migratePostgresSizesToVariants as migrateSizesToVariants } from '@payloadcms/drizzle/postgres'\n"],"names":["migrateLocalizeStatus","getBlocksToJsonMigrator","migratePostgresLocalizeStatus","migratePostgresV2toV3","migratePostgresSizesToVariants","migrateSizesToVariants"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,mDAAkD;AACxF,SAASC,uBAAuB,QAAQ,sBAAqB;AAC7D,SAASC,6BAA6B,EAAEC,qBAAqB,QAAQ,+BAA8B;AACnG,SAASC,kCAAkCC,sBAAsB,QAAQ,+BAA8B"}
|
|
@@ -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,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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const imports = `import { migratePostgresV2toV3 } from '@payloadcms/db-postgres/migration-utils'`;
|
|
2
|
+
const upSQL = ` await migratePostgresV2toV3({
|
|
3
|
+
// enables logging of changes that will be made to the database
|
|
4
|
+
debug: false,
|
|
5
|
+
payload,
|
|
6
|
+
req,
|
|
7
|
+
})
|
|
8
|
+
`;
|
|
9
|
+
export { imports, upSQL };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=relationships-v2-v3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes-to-variants.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/sizes-to-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAIvD,eAAO,MAAM,OAAO,EAAE,wBAEpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/predefinedMigrations/sizes-to-variants.ts"],"sourcesContent":["import type { DynamicMigrationTemplate } from 'payload'\n\nimport { buildDynamicPredefinedSizesToVariantsMigration } from '@payloadcms/drizzle'\n\nexport const dynamic: DynamicMigrationTemplate = buildDynamicPredefinedSizesToVariantsMigration({\n packageName: '@payloadcms/db-postgres',\n})\n"],"names":["buildDynamicPredefinedSizesToVariantsMigration","dynamic","packageName"],"mappings":"AAEA,SAASA,8CAA8C,QAAQ,sBAAqB;AAEpF,OAAO,MAAMC,UAAoCD,+CAA+C;IAC9FE,aAAa;AACf,GAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-postgres",
|
|
3
|
-
"version": "4.0.0-canary.
|
|
3
|
+
"version": "4.0.0-canary.38",
|
|
4
4
|
"description": "The officially supported Postgres database adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -66,17 +66,17 @@
|
|
|
66
66
|
"prompts": "2.4.2",
|
|
67
67
|
"to-snake-case": "1.0.0",
|
|
68
68
|
"uuid": "14.0.0",
|
|
69
|
-
"@payloadcms/drizzle": "4.0.0-canary.
|
|
69
|
+
"@payloadcms/drizzle": "4.0.0-canary.38"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@hyrious/esbuild-plugin-commonjs": "0.2.6",
|
|
73
73
|
"@types/to-snake-case": "1.0.0",
|
|
74
74
|
"esbuild": "0.27.1",
|
|
75
75
|
"@payloadcms/eslint-config": "3.28.0",
|
|
76
|
-
"payload": "4.0.0-canary.
|
|
76
|
+
"payload": "4.0.0-canary.38"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
|
-
"payload": "4.0.0-canary.
|
|
79
|
+
"payload": "4.0.0-canary.38"
|
|
80
80
|
},
|
|
81
81
|
"scripts": {
|
|
82
82
|
"build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm renamePredefinedMigrations",
|