@payloadcms/drizzle 4.0.0-internal.af6aad0 → 4.0.0-internal.b8e7c89
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/migrate.d.ts.map +1 -1
- package/dist/migrate.js +35 -13
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts +2 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +12 -2
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts +4 -2
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +21 -7
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts +2 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +14 -3
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts +2 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +12 -2
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.d.ts +2 -1
- package/dist/migrateStatus.d.ts.map +1 -1
- package/dist/migrateStatus.js +11 -6
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +12 -3
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +50 -27
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +151 -3
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/resolveRelationshipPath.d.ts +36 -0
- package/dist/queries/resolveRelationshipPath.d.ts.map +1 -0
- package/dist/queries/resolveRelationshipPath.js +66 -0
- package/dist/queries/resolveRelationshipPath.js.map +1 -0
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +3 -0
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +12 -8
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +3 -0
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/package.json +3 -3
package/dist/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAA;AAM3D,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAA;AAM3D,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,SAAS,CA8E7C,CAAA"}
|
package/dist/migrate.js
CHANGED
|
@@ -5,6 +5,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
5
5
|
import { parseError } from './utilities/parseError.js';
|
|
6
6
|
export const migrate = async function migrate(args) {
|
|
7
7
|
const { payload } = this;
|
|
8
|
+
const { forceAcceptWarning = false, shouldPrompt = true } = args ?? {};
|
|
8
9
|
const migrationFiles = args?.migrations || await readMigrationFiles({
|
|
9
10
|
payload
|
|
10
11
|
});
|
|
@@ -12,7 +13,10 @@ export const migrate = async function migrate(args) {
|
|
|
12
13
|
payload.logger.info({
|
|
13
14
|
msg: 'No migrations to run.'
|
|
14
15
|
});
|
|
15
|
-
return
|
|
16
|
+
return {
|
|
17
|
+
migrated: [],
|
|
18
|
+
rolledBack: []
|
|
19
|
+
};
|
|
16
20
|
}
|
|
17
21
|
if ('createExtensions' in this && typeof this.createExtensions === 'function') {
|
|
18
22
|
await this.createExtensions();
|
|
@@ -28,18 +32,27 @@ export const migrate = async function migrate(args) {
|
|
|
28
32
|
sort: '-name'
|
|
29
33
|
}));
|
|
30
34
|
if (migrationsInDB.find((m)=>m.batch === -1)) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
if (!forceAcceptWarning) {
|
|
36
|
+
if (!shouldPrompt) {
|
|
37
|
+
return {
|
|
38
|
+
cancelled: true,
|
|
39
|
+
migrated: [],
|
|
40
|
+
rolledBack: []
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const { confirm: runMigrations } = await prompts({
|
|
44
|
+
name: 'confirm',
|
|
45
|
+
type: 'confirm',
|
|
46
|
+
initial: false,
|
|
47
|
+
message: "It looks like you've run Payload in dev mode, meaning you've dynamically pushed changes to your database.\n\n" + "If you'd like to run migrations, data loss will occur. Would you like to proceed?"
|
|
48
|
+
});
|
|
49
|
+
if (!runMigrations) {
|
|
50
|
+
return {
|
|
51
|
+
cancelled: true,
|
|
52
|
+
migrated: [],
|
|
53
|
+
rolledBack: []
|
|
54
|
+
};
|
|
39
55
|
}
|
|
40
|
-
});
|
|
41
|
-
if (!runMigrations) {
|
|
42
|
-
process.exit(0);
|
|
43
56
|
}
|
|
44
57
|
// ignore the dev migration so that the latest batch number increments correctly
|
|
45
58
|
migrationsInDB = migrationsInDB.filter((m)=>m.batch !== -1);
|
|
@@ -49,6 +62,7 @@ export const migrate = async function migrate(args) {
|
|
|
49
62
|
}
|
|
50
63
|
}
|
|
51
64
|
const newBatch = latestBatch + 1;
|
|
65
|
+
const migrated = [];
|
|
52
66
|
// Execute 'up' function for each migration sequentially
|
|
53
67
|
for (const migration of migrationFiles){
|
|
54
68
|
const alreadyRan = migrationsInDB.find((existing)=>existing.name === migration.name);
|
|
@@ -57,7 +71,15 @@ export const migrate = async function migrate(args) {
|
|
|
57
71
|
continue;
|
|
58
72
|
}
|
|
59
73
|
await runMigrationFile(payload, migration, newBatch);
|
|
74
|
+
migrated.push(migration.name);
|
|
60
75
|
}
|
|
76
|
+
return {
|
|
77
|
+
...migrated.length ? {
|
|
78
|
+
batch: newBatch
|
|
79
|
+
} : {},
|
|
80
|
+
migrated,
|
|
81
|
+
rolledBack: []
|
|
82
|
+
};
|
|
61
83
|
};
|
|
62
84
|
async function runMigrationFile(payload, migration, batch) {
|
|
63
85
|
const start = Date.now();
|
|
@@ -91,7 +113,7 @@ async function runMigrationFile(payload, migration, batch) {
|
|
|
91
113
|
err,
|
|
92
114
|
msg: parseError(err, `Error running migration ${migration.name}`)
|
|
93
115
|
});
|
|
94
|
-
|
|
116
|
+
throw err;
|
|
95
117
|
}
|
|
96
118
|
}
|
|
97
119
|
|
package/dist/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrate.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter, Migration } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport const migrate: DrizzleAdapter['migrate'] = async function migrate(\n this: DrizzleAdapter,\n args,\n)
|
|
1
|
+
{"version":3,"sources":["../src/migrate.ts"],"sourcesContent":["import type { MigrationResult, Payload } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter, Migration } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport const migrate: DrizzleAdapter['migrate'] = async function migrate(\n this: DrizzleAdapter,\n args,\n) {\n const { payload } = this\n const { forceAcceptWarning = false, shouldPrompt = true } = args ?? {}\n const migrationFiles = args?.migrations || (await readMigrationFiles({ payload }))\n\n if (!migrationFiles.length) {\n payload.logger.info({ msg: 'No migrations to run.' })\n return { migrated: [], rolledBack: [] }\n }\n\n if ('createExtensions' in this && typeof this.createExtensions === 'function') {\n await this.createExtensions()\n }\n\n let latestBatch = 0\n let migrationsInDB = []\n\n const hasMigrationTable = await migrationTableExists(this)\n\n if (hasMigrationTable) {\n ;({ docs: migrationsInDB } = await payload.find({\n collection: 'payload-migrations',\n limit: 0,\n sort: '-name',\n }))\n\n if (migrationsInDB.find((m) => m.batch === -1)) {\n if (!forceAcceptWarning) {\n if (!shouldPrompt) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n\n const { confirm: runMigrations } = await prompts({\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message:\n \"It looks like you've run Payload in dev mode, meaning you've dynamically pushed changes to your database.\\n\\n\" +\n \"If you'd like to run migrations, data loss will occur. Would you like to proceed?\",\n })\n\n if (!runMigrations) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n }\n // ignore the dev migration so that the latest batch number increments correctly\n migrationsInDB = migrationsInDB.filter((m) => m.batch !== -1)\n }\n\n if (Number(migrationsInDB?.[0]?.batch) > 0) {\n latestBatch = Number(migrationsInDB[0]?.batch)\n }\n }\n\n const newBatch = latestBatch + 1\n const migrated: string[] = []\n\n // Execute 'up' function for each migration sequentially\n for (const migration of migrationFiles) {\n const alreadyRan = migrationsInDB.find((existing) => existing.name === migration.name)\n\n // If already ran, skip\n if (alreadyRan) {\n continue\n }\n\n await runMigrationFile(payload, migration, newBatch)\n migrated.push(migration.name)\n }\n\n return {\n ...(migrated.length ? { batch: newBatch } : {}),\n migrated,\n rolledBack: [],\n } satisfies MigrationResult\n}\n\nasync function runMigrationFile(payload: Payload, migration: Migration, batch: number) {\n const start = Date.now()\n const req = await createLocalReq({}, payload)\n\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n\n try {\n await initTransaction(req)\n const db = await getTransaction(payload.db as DrizzleAdapter, req)\n await migration.up({ db, payload, req })\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n batch,\n },\n req,\n })\n await commitTransaction(req)\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}`),\n })\n throw err\n }\n}\n"],"names":["commitTransaction","createLocalReq","initTransaction","killTransaction","readMigrationFiles","prompts","getTransaction","migrationTableExists","parseError","migrate","args","payload","forceAcceptWarning","shouldPrompt","migrationFiles","migrations","length","logger","info","msg","migrated","rolledBack","createExtensions","latestBatch","migrationsInDB","hasMigrationTable","docs","find","collection","limit","sort","m","batch","cancelled","confirm","runMigrations","name","type","initial","message","filter","Number","newBatch","migration","alreadyRan","existing","runMigrationFile","push","start","Date","now","req","db","up","create","data","err","error"],"mappings":"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"}
|
package/dist/migrateDown.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
|
-
export declare function migrateDown(this: DrizzleAdapter): Promise<
|
|
3
|
+
export declare function migrateDown(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
3
4
|
//# sourceMappingURL=migrateDown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateDown.d.ts","sourceRoot":"","sources":["../src/migrateDown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateDown.d.ts","sourceRoot":"","sources":["../src/migrateDown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA8DhF"}
|
package/dist/migrateDown.js
CHANGED
|
@@ -14,12 +14,16 @@ export async function migrateDown() {
|
|
|
14
14
|
payload.logger.info({
|
|
15
15
|
msg: 'No migrations to rollback.'
|
|
16
16
|
});
|
|
17
|
-
return
|
|
17
|
+
return {
|
|
18
|
+
migrated: [],
|
|
19
|
+
rolledBack: []
|
|
20
|
+
};
|
|
18
21
|
}
|
|
19
22
|
payload.logger.info({
|
|
20
23
|
msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`
|
|
21
24
|
});
|
|
22
25
|
const latestBatchMigrations = existingMigrations.filter(({ batch })=>batch === latestBatch);
|
|
26
|
+
const rolledBack = [];
|
|
23
27
|
for (const migration of latestBatchMigrations){
|
|
24
28
|
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
25
29
|
if (!migrationFile) {
|
|
@@ -50,15 +54,21 @@ export async function migrateDown() {
|
|
|
50
54
|
});
|
|
51
55
|
}
|
|
52
56
|
await commitTransaction(req);
|
|
57
|
+
rolledBack.push(migrationFile.name);
|
|
53
58
|
} catch (err) {
|
|
54
59
|
await killTransaction(req);
|
|
55
60
|
payload.logger.error({
|
|
56
61
|
err,
|
|
57
62
|
msg: parseError(err, `Error migrating down ${migrationFile.name}. Rolling back.`)
|
|
58
63
|
});
|
|
59
|
-
|
|
64
|
+
throw err;
|
|
60
65
|
}
|
|
61
66
|
}
|
|
67
|
+
return {
|
|
68
|
+
batch: latestBatch,
|
|
69
|
+
migrated: [],
|
|
70
|
+
rolledBack
|
|
71
|
+
};
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
//# sourceMappingURL=migrateDown.js.map
|
package/dist/migrateDown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateDown.ts"],"sourcesContent":["import {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport async function migrateDown(this: DrizzleAdapter): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateDown.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport async function migrateDown(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations, latestBatch } = await getMigrations({\n payload,\n })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to rollback.' })\n return { migrated: [], rolledBack: [] }\n }\n\n payload.logger.info({\n msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`,\n })\n\n const latestBatchMigrations = existingMigrations.filter(({ batch }) => batch === latestBatch)\n const rolledBack: string[] = []\n\n for (const migration of latestBatchMigrations) {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n const start = Date.now()\n const req = await createLocalReq({}, payload)\n\n try {\n payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` })\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n\n if (tableExists) {\n await payload.delete({\n id: migration.id,\n collection: 'payload-migrations',\n req,\n })\n }\n\n await commitTransaction(req)\n rolledBack.push(migrationFile.name)\n } catch (err: unknown) {\n await killTransaction(req)\n\n payload.logger.error({\n err,\n msg: parseError(err, `Error migrating down ${migrationFile.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n return { batch: latestBatch, migrated: [], rolledBack }\n}\n"],"names":["commitTransaction","createLocalReq","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","parseError","migrateDown","payload","migrationFiles","existingMigrations","latestBatch","length","logger","info","msg","migrated","rolledBack","latestBatchMigrations","filter","batch","migration","migrationFile","find","m","name","Error","start","Date","now","req","db","down","tableExists","delete","id","collection","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAIhB,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,UAAU,QAAQ,4BAA2B;AAEtD,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMN,mBAAmB;QAAEK;IAAQ;IAE1D,MAAM,EAAEE,kBAAkB,EAAEC,WAAW,EAAE,GAAG,MAAMX,cAAc;QAC9DQ;IACF;IAEA,IAAI,CAACE,oBAAoBE,QAAQ;QAC/BJ,QAAQK,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK;QAA6B;QACxD,OAAO;YAAEC,UAAU,EAAE;YAAEC,YAAY,EAAE;QAAC;IACxC;IAEAT,QAAQK,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,mBAAmB,EAAEJ,YAAY,eAAe,EAAED,mBAAmBE,MAAM,CAAC,cAAc,CAAC;IACnG;IAEA,MAAMM,wBAAwBR,mBAAmBS,MAAM,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAKA,UAAUT;IACjF,MAAMM,aAAuB,EAAE;IAE/B,KAAK,MAAMI,aAAaH,sBAAuB;QAC7C,MAAMI,gBAAgBb,eAAec,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAC1E,IAAI,CAACH,eAAe;YAClB,MAAM,IAAII,MAAM,CAAC,UAAU,EAAEL,UAAUI,IAAI,CAAC,mBAAmB,CAAC;QAClE;QAEA,MAAME,QAAQC,KAAKC,GAAG;QACtB,MAAMC,MAAM,MAAM/B,eAAe,CAAC,GAAGS;QAErC,IAAI;YACFA,QAAQK,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,gBAAgB,EAAEO,cAAcG,IAAI,EAAE;YAAC;YACnE,MAAMxB,gBAAgB6B;YACtB,MAAMC,KAAK,MAAM3B,eAAe,IAAI,EAAE0B;YACtC,MAAMR,cAAcU,IAAI,CAAC;gBAAED;gBAAIvB;gBAASsB;YAAI;YAC5CtB,QAAQK,MAAM,CAACC,IAAI,CAAC;gBAClBC,KAAK,CAAC,gBAAgB,EAAEO,cAAcG,IAAI,CAAC,EAAE,EAAEG,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YACxE;YAEA,MAAMM,cAAc,MAAM5B,qBAAqB,IAAI,EAAE0B;YAErD,IAAIE,aAAa;gBACf,MAAMzB,QAAQ0B,MAAM,CAAC;oBACnBC,IAAId,UAAUc,EAAE;oBAChBC,YAAY;oBACZN;gBACF;YACF;YAEA,MAAMhC,kBAAkBgC;YACxBb,WAAWoB,IAAI,CAACf,cAAcG,IAAI;QACpC,EAAE,OAAOa,KAAc;YACrB,MAAMpC,gBAAgB4B;YAEtBtB,QAAQK,MAAM,CAAC0B,KAAK,CAAC;gBACnBD;gBACAvB,KAAKT,WAAWgC,KAAK,CAAC,qBAAqB,EAAEhB,cAAcG,IAAI,CAAC,eAAe,CAAC;YAClF;YACA,MAAMa;QACR;IACF;IAEA,OAAO;QAAElB,OAAOT;QAAaK,UAAU,EAAE;QAAEC;IAAW;AACxD"}
|
package/dist/migrateFresh.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Drop the current database and run all migrate up functions
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateFresh(this: DrizzleAdapter, { forceAcceptWarning }: {
|
|
6
|
+
export declare function migrateFresh(this: DrizzleAdapter, { forceAcceptWarning, shouldPrompt }: {
|
|
6
7
|
forceAcceptWarning?: boolean;
|
|
7
|
-
|
|
8
|
+
shouldPrompt?: boolean;
|
|
9
|
+
}): Promise<MigrationResult>;
|
|
8
10
|
//# sourceMappingURL=migrateFresh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,EAAE,kBAA0B,EAAE,YAAmB,EAAE;;;CAAA,GAClD,OAAO,CAAC,eAAe,CAAC,CAqE1B"}
|
package/dist/migrateFresh.js
CHANGED
|
@@ -4,21 +4,28 @@ import { getTransaction } from './utilities/getTransaction.js';
|
|
|
4
4
|
import { parseError } from './utilities/parseError.js';
|
|
5
5
|
/**
|
|
6
6
|
* Drop the current database and run all migrate up functions
|
|
7
|
-
*/ export async function migrateFresh({ forceAcceptWarning = false }) {
|
|
7
|
+
*/ export async function migrateFresh({ forceAcceptWarning = false, shouldPrompt = true }) {
|
|
8
8
|
const { payload } = this;
|
|
9
9
|
if (forceAcceptWarning === false) {
|
|
10
|
+
if (!shouldPrompt) {
|
|
11
|
+
return {
|
|
12
|
+
cancelled: true,
|
|
13
|
+
migrated: [],
|
|
14
|
+
rolledBack: []
|
|
15
|
+
};
|
|
16
|
+
}
|
|
10
17
|
const { confirm: acceptWarning } = await prompts({
|
|
11
18
|
name: 'confirm',
|
|
12
19
|
type: 'confirm',
|
|
13
20
|
initial: false,
|
|
14
21
|
message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`
|
|
15
|
-
}, {
|
|
16
|
-
onCancel: ()=>{
|
|
17
|
-
process.exit(0);
|
|
18
|
-
}
|
|
19
22
|
});
|
|
20
23
|
if (!acceptWarning) {
|
|
21
|
-
|
|
24
|
+
return {
|
|
25
|
+
cancelled: true,
|
|
26
|
+
migrated: [],
|
|
27
|
+
rolledBack: []
|
|
28
|
+
};
|
|
22
29
|
}
|
|
23
30
|
}
|
|
24
31
|
payload.logger.info({
|
|
@@ -34,6 +41,7 @@ import { parseError } from './utilities/parseError.js';
|
|
|
34
41
|
msg: `Found ${migrationFiles.length} migration files.`
|
|
35
42
|
});
|
|
36
43
|
const req = await createLocalReq({}, payload);
|
|
44
|
+
const migrated = [];
|
|
37
45
|
if ('createExtensions' in this && typeof this.createExtensions === 'function') {
|
|
38
46
|
await this.createExtensions();
|
|
39
47
|
}
|
|
@@ -60,6 +68,7 @@ import { parseError } from './utilities/parseError.js';
|
|
|
60
68
|
req
|
|
61
69
|
});
|
|
62
70
|
await commitTransaction(req);
|
|
71
|
+
migrated.push(migration.name);
|
|
63
72
|
payload.logger.info({
|
|
64
73
|
msg: `Migrated: ${migration.name} (${Date.now() - start}ms)`
|
|
65
74
|
});
|
|
@@ -69,9 +78,14 @@ import { parseError } from './utilities/parseError.js';
|
|
|
69
78
|
err,
|
|
70
79
|
msg: parseError(err, `Error running migration ${migration.name}. Rolling back`)
|
|
71
80
|
});
|
|
72
|
-
|
|
81
|
+
throw err;
|
|
73
82
|
}
|
|
74
83
|
}
|
|
84
|
+
return {
|
|
85
|
+
batch: 1,
|
|
86
|
+
migrated,
|
|
87
|
+
rolledBack: []
|
|
88
|
+
};
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
//# sourceMappingURL=migrateFresh.js.map
|
package/dist/migrateFresh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Drop the current database and run all migrate up functions\n */\nexport async function migrateFresh(\n this: DrizzleAdapter,\n { forceAcceptWarning = false },\n): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Drop the current database and run all migrate up functions\n */\nexport async function migrateFresh(\n this: DrizzleAdapter,\n { forceAcceptWarning = false, shouldPrompt = true },\n): Promise<MigrationResult> {\n const { payload } = this\n\n if (forceAcceptWarning === false) {\n if (!shouldPrompt) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n\n const { confirm: acceptWarning } = await prompts({\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`,\n })\n\n if (!acceptWarning) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n }\n\n payload.logger.info({\n msg: `Dropping database.`,\n })\n\n await this.dropDatabase({ adapter: this })\n\n const migrationFiles = await readMigrationFiles({ payload })\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n const req = await createLocalReq({}, payload)\n const migrated: string[] = []\n\n if ('createExtensions' in this && typeof this.createExtensions === 'function') {\n await this.createExtensions()\n }\n\n // Run all migrate up\n for (const migration of migrationFiles) {\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n try {\n const start = Date.now()\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migration.up({ db, payload, req })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n batch: 1,\n },\n req,\n })\n await commitTransaction(req)\n migrated.push(migration.name)\n\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back`),\n })\n throw err\n }\n }\n\n return { batch: 1, migrated, rolledBack: [] }\n}\n"],"names":["commitTransaction","createLocalReq","initTransaction","killTransaction","readMigrationFiles","prompts","getTransaction","parseError","migrateFresh","forceAcceptWarning","shouldPrompt","payload","cancelled","migrated","rolledBack","confirm","acceptWarning","name","type","initial","message","logger","info","msg","dropDatabase","adapter","migrationFiles","debug","length","req","createExtensions","migration","start","Date","now","db","up","create","collection","data","batch","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAChB,OAAOC,aAAa,UAAS;AAI7B,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,UAAU,QAAQ,4BAA2B;AAEtD;;CAEC,GACD,OAAO,eAAeC,aAEpB,EAAEC,qBAAqB,KAAK,EAAEC,eAAe,IAAI,EAAE;IAEnD,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IAExB,IAAIF,uBAAuB,OAAO;QAChC,IAAI,CAACC,cAAc;YACjB,OAAO;gBAAEE,WAAW;gBAAMC,UAAU,EAAE;gBAAEC,YAAY,EAAE;YAAC;QACzD;QAEA,MAAM,EAAEC,SAASC,aAAa,EAAE,GAAG,MAAMX,QAAQ;YAC/CY,MAAM;YACNC,MAAM;YACNC,SAAS;YACTC,SAAS,CAAC,+FAA+F,CAAC;QAC5G;QAEA,IAAI,CAACJ,eAAe;YAClB,OAAO;gBAAEJ,WAAW;gBAAMC,UAAU,EAAE;gBAAEC,YAAY,EAAE;YAAC;QACzD;IACF;IAEAH,QAAQU,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,kBAAkB,CAAC;IAC3B;IAEA,MAAM,IAAI,CAACC,YAAY,CAAC;QAAEC,SAAS,IAAI;IAAC;IAExC,MAAMC,iBAAiB,MAAMtB,mBAAmB;QAAEO;IAAQ;IAC1DA,QAAQU,MAAM,CAACM,KAAK,CAAC;QACnBJ,KAAK,CAAC,MAAM,EAAEG,eAAeE,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,MAAMC,MAAM,MAAM5B,eAAe,CAAC,GAAGU;IACrC,MAAME,WAAqB,EAAE;IAE7B,IAAI,sBAAsB,IAAI,IAAI,OAAO,IAAI,CAACiB,gBAAgB,KAAK,YAAY;QAC7E,MAAM,IAAI,CAACA,gBAAgB;IAC7B;IAEA,qBAAqB;IACrB,KAAK,MAAMC,aAAaL,eAAgB;QACtCf,QAAQU,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK,CAAC,WAAW,EAAEQ,UAAUd,IAAI,EAAE;QAAC;QAC1D,IAAI;YACF,MAAMe,QAAQC,KAAKC,GAAG;YACtB,MAAMhC,gBAAgB2B;YACtB,MAAMM,KAAK,MAAM7B,eAAe,IAAI,EAAEuB;YACtC,MAAME,UAAUK,EAAE,CAAC;gBAAED;gBAAIxB;gBAASkB;YAAI;YACtC,MAAMlB,QAAQ0B,MAAM,CAAC;gBACnBC,YAAY;gBACZC,MAAM;oBACJtB,MAAMc,UAAUd,IAAI;oBACpBuB,OAAO;gBACT;gBACAX;YACF;YACA,MAAM7B,kBAAkB6B;YACxBhB,SAAS4B,IAAI,CAACV,UAAUd,IAAI;YAE5BN,QAAQU,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,WAAW,EAAEQ,UAAUd,IAAI,CAAC,EAAE,EAAEgB,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YAAC;QACtF,EAAE,OAAOU,KAAc;YACrB,MAAMvC,gBAAgB0B;YACtBlB,QAAQU,MAAM,CAACsB,KAAK,CAAC;gBACnBD;gBACAnB,KAAKhB,WAAWmC,KAAK,CAAC,wBAAwB,EAAEX,UAAUd,IAAI,CAAC,cAAc,CAAC;YAChF;YACA,MAAMyB;QACR;IACF;IAEA,OAAO;QAAEF,OAAO;QAAG3B;QAAUC,YAAY,EAAE;IAAC;AAC9C"}
|
package/dist/migrateRefresh.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Run all migration down functions before running up
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateRefresh(this: DrizzleAdapter): Promise<
|
|
6
|
+
export declare function migrateRefresh(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
6
7
|
//# sourceMappingURL=migrateRefresh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../src/migrateRefresh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../src/migrateRefresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA8FnF"}
|
package/dist/migrateRefresh.js
CHANGED
|
@@ -16,12 +16,17 @@ import { parseError } from './utilities/parseError.js';
|
|
|
16
16
|
payload.logger.info({
|
|
17
17
|
msg: 'No migrations to rollback.'
|
|
18
18
|
});
|
|
19
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
migrated: [],
|
|
21
|
+
rolledBack: []
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
24
|
payload.logger.info({
|
|
22
25
|
msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`
|
|
23
26
|
});
|
|
24
27
|
const req = await createLocalReq({}, payload);
|
|
28
|
+
const migrated = [];
|
|
29
|
+
const rolledBack = [];
|
|
25
30
|
// Reverse order of migrations to rollback
|
|
26
31
|
existingMigrations.reverse();
|
|
27
32
|
for (const migration of existingMigrations){
|
|
@@ -57,13 +62,14 @@ import { parseError } from './utilities/parseError.js';
|
|
|
57
62
|
});
|
|
58
63
|
}
|
|
59
64
|
await commitTransaction(req);
|
|
65
|
+
rolledBack.push(migration.name);
|
|
60
66
|
} catch (err) {
|
|
61
67
|
await killTransaction(req);
|
|
62
68
|
payload.logger.error({
|
|
63
69
|
err,
|
|
64
70
|
msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`)
|
|
65
71
|
});
|
|
66
|
-
|
|
72
|
+
throw err;
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
// Run all migrate up
|
|
@@ -87,6 +93,7 @@ import { parseError } from './utilities/parseError.js';
|
|
|
87
93
|
req
|
|
88
94
|
});
|
|
89
95
|
await commitTransaction(req);
|
|
96
|
+
migrated.push(migration.name);
|
|
90
97
|
payload.logger.info({
|
|
91
98
|
msg: `Migrated: ${migration.name} (${Date.now() - start}ms)`
|
|
92
99
|
});
|
|
@@ -96,9 +103,13 @@ import { parseError } from './utilities/parseError.js';
|
|
|
96
103
|
err,
|
|
97
104
|
msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`)
|
|
98
105
|
});
|
|
99
|
-
|
|
106
|
+
throw err;
|
|
100
107
|
}
|
|
101
108
|
}
|
|
109
|
+
return {
|
|
110
|
+
migrated,
|
|
111
|
+
rolledBack
|
|
112
|
+
};
|
|
102
113
|
}
|
|
103
114
|
|
|
104
115
|
//# sourceMappingURL=migrateRefresh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateRefresh.ts"],"sourcesContent":["import {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Run all migration down functions before running up\n */\nexport async function migrateRefresh(this: DrizzleAdapter) {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations, latestBatch } = await getMigrations({\n payload,\n })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to rollback.' })\n return\n }\n\n payload.logger.info({\n msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`,\n })\n\n const req = await createLocalReq({}, payload)\n\n // Reverse order of migrations to rollback\n existingMigrations.reverse()\n\n for (const migration of existingMigrations) {\n try {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n payload.logger.info({ msg: `Migrating down: ${migration.name}` })\n const start = Date.now()\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migration.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n if (tableExists) {\n await payload.delete({\n collection: 'payload-migrations',\n req,\n where: {\n name: {\n equals: migration.name,\n },\n },\n })\n }\n await commitTransaction(req)\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`),\n })\n
|
|
1
|
+
{"version":3,"sources":["../src/migrateRefresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Run all migration down functions before running up\n */\nexport async function migrateRefresh(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations, latestBatch } = await getMigrations({\n payload,\n })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to rollback.' })\n return { migrated: [], rolledBack: [] }\n }\n\n payload.logger.info({\n msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`,\n })\n\n const req = await createLocalReq({}, payload)\n const migrated: string[] = []\n const rolledBack: string[] = []\n\n // Reverse order of migrations to rollback\n existingMigrations.reverse()\n\n for (const migration of existingMigrations) {\n try {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n payload.logger.info({ msg: `Migrating down: ${migration.name}` })\n const start = Date.now()\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migration.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n if (tableExists) {\n await payload.delete({\n collection: 'payload-migrations',\n req,\n where: {\n name: {\n equals: migration.name,\n },\n },\n })\n }\n await commitTransaction(req)\n rolledBack.push(migration.name)\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n // Run all migrate up\n for (const migration of migrationFiles) {\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n try {\n const start = Date.now()\n await initTransaction(req)\n await migration.up({ payload, req })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n executed: true,\n },\n req,\n })\n await commitTransaction(req)\n migrated.push(migration.name)\n\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n return { migrated, rolledBack }\n}\n"],"names":["commitTransaction","createLocalReq","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","parseError","migrateRefresh","payload","migrationFiles","existingMigrations","latestBatch","length","logger","info","msg","migrated","rolledBack","req","reverse","migration","migrationFile","find","m","name","Error","start","Date","now","db","down","tableExists","delete","collection","where","equals","push","err","error","up","create","data","executed"],"mappings":"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"}
|
package/dist/migrateReset.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Run all migrate down functions
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateReset(this: DrizzleAdapter): Promise<
|
|
6
|
+
export declare function migrateReset(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
6
7
|
//# sourceMappingURL=migrateReset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateReset.d.ts","sourceRoot":"","sources":["../src/migrateReset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateReset.d.ts","sourceRoot":"","sources":["../src/migrateReset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAgFjF"}
|
package/dist/migrateReset.js
CHANGED
|
@@ -15,10 +15,14 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
15
15
|
payload.logger.info({
|
|
16
16
|
msg: 'No migrations to reset.'
|
|
17
17
|
});
|
|
18
|
-
return
|
|
18
|
+
return {
|
|
19
|
+
migrated: [],
|
|
20
|
+
rolledBack: []
|
|
21
|
+
};
|
|
19
22
|
}
|
|
20
23
|
const req = await createLocalReq({}, payload);
|
|
21
24
|
existingMigrations.reverse();
|
|
25
|
+
const rolledBack = [];
|
|
22
26
|
// Rollback all migrations in order
|
|
23
27
|
for (const migration of existingMigrations){
|
|
24
28
|
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
@@ -49,6 +53,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
await commitTransaction(req);
|
|
56
|
+
rolledBack.push(migrationFile.name);
|
|
52
57
|
} catch (err) {
|
|
53
58
|
let msg = `Error running migration ${migrationFile.name}.`;
|
|
54
59
|
if (err instanceof Error) {
|
|
@@ -59,7 +64,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
59
64
|
err,
|
|
60
65
|
msg
|
|
61
66
|
});
|
|
62
|
-
|
|
67
|
+
throw err;
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
// Delete dev migration
|
|
@@ -79,8 +84,13 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
79
84
|
err,
|
|
80
85
|
msg: 'Error deleting dev migration'
|
|
81
86
|
});
|
|
87
|
+
throw err;
|
|
82
88
|
}
|
|
83
89
|
}
|
|
90
|
+
return {
|
|
91
|
+
migrated: [],
|
|
92
|
+
rolledBack
|
|
93
|
+
};
|
|
84
94
|
}
|
|
85
95
|
|
|
86
96
|
//# sourceMappingURL=migrateReset.js.map
|
package/dist/migrateReset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["import {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\n/**\n * Run all migrate down functions\n */\nexport async function migrateReset(this: DrizzleAdapter): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\n/**\n * Run all migrate down functions\n */\nexport async function migrateReset(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations } = await getMigrations({ payload })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to reset.' })\n return { migrated: [], rolledBack: [] }\n }\n\n const req = await createLocalReq({}, payload)\n\n existingMigrations.reverse()\n const rolledBack: string[] = []\n\n // Rollback all migrations in order\n for (const migration of existingMigrations) {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n try {\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n const start = Date.now()\n payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` })\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n if (tableExists) {\n await payload.delete({\n id: migration.id,\n collection: 'payload-migrations',\n req,\n })\n }\n\n await commitTransaction(req)\n rolledBack.push(migrationFile.name)\n } catch (err: unknown) {\n let msg = `Error running migration ${migrationFile.name}.`\n\n if (err instanceof Error) {\n msg += ` ${err.message}`\n }\n\n await killTransaction(req)\n payload.logger.error({\n err,\n msg,\n })\n throw err\n }\n }\n\n // Delete dev migration\n\n const tableExists = await migrationTableExists(this)\n if (tableExists) {\n try {\n await payload.delete({\n collection: 'payload-migrations',\n where: {\n batch: {\n equals: -1,\n },\n },\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: 'Error deleting dev migration' })\n throw err\n }\n }\n\n return { migrated: [], rolledBack }\n}\n"],"names":["commitTransaction","createLocalReq","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","migrateReset","payload","migrationFiles","existingMigrations","length","logger","info","msg","migrated","rolledBack","req","reverse","migration","migrationFile","find","m","name","Error","start","Date","now","db","down","tableExists","delete","id","collection","push","err","message","error","where","batch","equals"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAIhB,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E;;CAEC,GACD,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAML,mBAAmB;QAAEI;IAAQ;IAE1D,MAAM,EAAEE,kBAAkB,EAAE,GAAG,MAAMT,cAAc;QAAEO;IAAQ;IAE7D,IAAI,CAACE,oBAAoBC,QAAQ;QAC/BH,QAAQI,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK;QAA0B;QACrD,OAAO;YAAEC,UAAU,EAAE;YAAEC,YAAY,EAAE;QAAC;IACxC;IAEA,MAAMC,MAAM,MAAMjB,eAAe,CAAC,GAAGQ;IAErCE,mBAAmBQ,OAAO;IAC1B,MAAMF,aAAuB,EAAE;IAE/B,mCAAmC;IACnC,KAAK,MAAMG,aAAaT,mBAAoB;QAC1C,MAAMU,gBAAgBX,eAAeY,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAC1E,IAAI;YACF,IAAI,CAACH,eAAe;gBAClB,MAAM,IAAII,MAAM,CAAC,UAAU,EAAEL,UAAUI,IAAI,CAAC,mBAAmB,CAAC;YAClE;YAEA,MAAME,QAAQC,KAAKC,GAAG;YACtBnB,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,gBAAgB,EAAEM,cAAcG,IAAI,EAAE;YAAC;YACnE,MAAMrB,gBAAgBe;YACtB,MAAMW,KAAK,MAAMvB,eAAe,IAAI,EAAEY;YACtC,MAAMG,cAAcS,IAAI,CAAC;gBAAED;gBAAIpB;gBAASS;YAAI;YAC5CT,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAClBC,KAAK,CAAC,gBAAgB,EAAEM,cAAcG,IAAI,CAAC,EAAE,EAAEG,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YACxE;YAEA,MAAMK,cAAc,MAAMxB,qBAAqB,IAAI,EAAEsB;YACrD,IAAIE,aAAa;gBACf,MAAMtB,QAAQuB,MAAM,CAAC;oBACnBC,IAAIb,UAAUa,EAAE;oBAChBC,YAAY;oBACZhB;gBACF;YACF;YAEA,MAAMlB,kBAAkBkB;YACxBD,WAAWkB,IAAI,CAACd,cAAcG,IAAI;QACpC,EAAE,OAAOY,KAAc;YACrB,IAAIrB,MAAM,CAAC,wBAAwB,EAAEM,cAAcG,IAAI,CAAC,CAAC,CAAC;YAE1D,IAAIY,eAAeX,OAAO;gBACxBV,OAAO,CAAC,CAAC,EAAEqB,IAAIC,OAAO,EAAE;YAC1B;YAEA,MAAMjC,gBAAgBc;YACtBT,QAAQI,MAAM,CAACyB,KAAK,CAAC;gBACnBF;gBACArB;YACF;YACA,MAAMqB;QACR;IACF;IAEA,uBAAuB;IAEvB,MAAML,cAAc,MAAMxB,qBAAqB,IAAI;IACnD,IAAIwB,aAAa;QACf,IAAI;YACF,MAAMtB,QAAQuB,MAAM,CAAC;gBACnBE,YAAY;gBACZK,OAAO;oBACLC,OAAO;wBACLC,QAAQ,CAAC;oBACX;gBACF;YACF;QACF,EAAE,OAAOL,KAAc;YACrB3B,QAAQI,MAAM,CAACyB,KAAK,CAAC;gBAAEF;gBAAKrB,KAAK;YAA+B;YAChE,MAAMqB;QACR;IACF;IAEA,OAAO;QAAEpB,UAAU,EAAE;QAAEC;IAAW;AACpC"}
|
package/dist/migrateStatus.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MigrationStatus } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
|
-
export declare function migrateStatus(this: DrizzleAdapter): Promise<
|
|
3
|
+
export declare function migrateStatus(this: DrizzleAdapter): Promise<MigrationStatus[]>;
|
|
3
4
|
//# sourceMappingURL=migrateStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateStatus.d.ts","sourceRoot":"","sources":["../src/migrateStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateStatus.d.ts","sourceRoot":"","sources":["../src/migrateStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA2CpF"}
|
package/dist/migrateStatus.js
CHANGED
|
@@ -21,24 +21,29 @@ export async function migrateStatus() {
|
|
|
21
21
|
payload.logger.info({
|
|
22
22
|
msg: 'No migrations found.'
|
|
23
23
|
});
|
|
24
|
-
return;
|
|
24
|
+
return [];
|
|
25
25
|
}
|
|
26
26
|
// Compare migration files to existing migrations
|
|
27
27
|
const statuses = migrationFiles.map((migration)=>{
|
|
28
28
|
const existingMigration = existingMigrations.find((m)=>m.name === migration.name);
|
|
29
29
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
name: migration.name,
|
|
31
|
+
batch: existingMigration?.batch,
|
|
32
|
+
ran: Boolean(existingMigration)
|
|
33
33
|
};
|
|
34
34
|
});
|
|
35
35
|
const p = new Table();
|
|
36
36
|
statuses.forEach((s)=>{
|
|
37
|
-
p.addRow(
|
|
38
|
-
|
|
37
|
+
p.addRow({
|
|
38
|
+
Batch: s.batch,
|
|
39
|
+
Name: s.name,
|
|
40
|
+
Ran: s.ran ? 'Yes' : 'No'
|
|
41
|
+
}, {
|
|
42
|
+
color: s.ran ? 'green' : 'red'
|
|
39
43
|
});
|
|
40
44
|
});
|
|
41
45
|
p.printTable();
|
|
46
|
+
return statuses;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
//# sourceMappingURL=migrateStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateStatus.ts"],"sourcesContent":["import { Table } from 'console-table-printer'\nimport { getMigrations, readMigrationFiles } from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\nexport async function migrateStatus(this: DrizzleAdapter): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateStatus.ts"],"sourcesContent":["import type { MigrationStatus } from 'payload'\n\nimport { Table } from 'console-table-printer'\nimport { getMigrations, readMigrationFiles } from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\nexport async function migrateStatus(this: DrizzleAdapter): Promise<MigrationStatus[]> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n let existingMigrations = []\n const hasMigrationTable = await migrationTableExists(this)\n\n if (hasMigrationTable) {\n ;({ existingMigrations } = await getMigrations({ payload }))\n }\n\n if (!migrationFiles.length) {\n payload.logger.info({ msg: 'No migrations found.' })\n return []\n }\n\n // Compare migration files to existing migrations\n const statuses = migrationFiles.map((migration) => {\n const existingMigration = existingMigrations.find((m) => m.name === migration.name)\n return {\n name: migration.name,\n batch: existingMigration?.batch,\n ran: Boolean(existingMigration),\n }\n })\n\n const p = new Table()\n\n statuses.forEach((s) => {\n p.addRow(\n { Batch: s.batch, Name: s.name, Ran: s.ran ? 'Yes' : 'No' },\n {\n color: s.ran ? 'green' : 'red',\n },\n )\n })\n p.printTable()\n\n return statuses\n}\n"],"names":["Table","getMigrations","readMigrationFiles","migrationTableExists","migrateStatus","payload","migrationFiles","logger","debug","msg","length","existingMigrations","hasMigrationTable","info","statuses","map","migration","existingMigration","find","m","name","batch","ran","Boolean","p","forEach","s","addRow","Batch","Name","Ran","color","printTable"],"mappings":"AAEA,SAASA,KAAK,QAAQ,wBAAuB;AAC7C,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,UAAS;AAI3D,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMJ,mBAAmB;QAAEG;IAAQ;IAE1DA,QAAQE,MAAM,CAACC,KAAK,CAAC;QACnBC,KAAK,CAAC,MAAM,EAAEH,eAAeI,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,IAAIC,qBAAqB,EAAE;IAC3B,MAAMC,oBAAoB,MAAMT,qBAAqB,IAAI;IAEzD,IAAIS,mBAAmB;;QACnB,CAAA,EAAED,kBAAkB,EAAE,GAAG,MAAMV,cAAc;YAAEI;QAAQ,EAAC;IAC5D;IAEA,IAAI,CAACC,eAAeI,MAAM,EAAE;QAC1BL,QAAQE,MAAM,CAACM,IAAI,CAAC;YAAEJ,KAAK;QAAuB;QAClD,OAAO,EAAE;IACX;IAEA,iDAAiD;IACjD,MAAMK,WAAWR,eAAeS,GAAG,CAAC,CAACC;QACnC,MAAMC,oBAAoBN,mBAAmBO,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAClF,OAAO;YACLA,MAAMJ,UAAUI,IAAI;YACpBC,OAAOJ,mBAAmBI;YAC1BC,KAAKC,QAAQN;QACf;IACF;IAEA,MAAMO,IAAI,IAAIxB;IAEdc,SAASW,OAAO,CAAC,CAACC;QAChBF,EAAEG,MAAM,CACN;YAAEC,OAAOF,EAAEL,KAAK;YAAEQ,MAAMH,EAAEN,IAAI;YAAEU,KAAKJ,EAAEJ,GAAG,GAAG,QAAQ;QAAK,GAC1D;YACES,OAAOL,EAAEJ,GAAG,GAAG,UAAU;QAC3B;IAEJ;IACAE,EAAEQ,UAAU;IAEZ,OAAOlB;AACT"}
|
|
@@ -45,7 +45,7 @@ const runStatementGroup = async ({ adapter, db, debug, statements })=>{
|
|
|
45
45
|
const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
|
|
46
46
|
if (!generatedSQL.length) {
|
|
47
47
|
payload.logger.info(`No schema changes needed.`);
|
|
48
|
-
|
|
48
|
+
return;
|
|
49
49
|
}
|
|
50
50
|
const sqlUpStatements = groupUpSQLStatements(generatedSQL);
|
|
51
51
|
const db = await getTransaction(adapter, req);
|