@payloadcms/drizzle 4.0.0-internal.77191e5 → 4.0.0-internal.7b53b6d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/dist/count.d.ts.map +1 -1
  2. package/dist/count.js +25 -3
  3. package/dist/count.js.map +1 -1
  4. package/dist/countVersions.d.ts.map +1 -1
  5. package/dist/countVersions.js +28 -4
  6. package/dist/countVersions.js.map +1 -1
  7. package/dist/createGlobalVersion.d.ts.map +1 -1
  8. package/dist/createGlobalVersion.js +15 -2
  9. package/dist/createGlobalVersion.js.map +1 -1
  10. package/dist/createVersion.d.ts.map +1 -1
  11. package/dist/createVersion.js +12 -1
  12. package/dist/createVersion.js.map +1 -1
  13. package/dist/deleteBranchGlobal.d.ts +10 -0
  14. package/dist/deleteBranchGlobal.d.ts.map +1 -0
  15. package/dist/deleteBranchGlobal.js +27 -0
  16. package/dist/deleteBranchGlobal.js.map +1 -0
  17. package/dist/deleteOne.d.ts.map +1 -1
  18. package/dist/deleteOne.js +18 -1
  19. package/dist/deleteOne.js.map +1 -1
  20. package/dist/exports/postgres.d.ts +2 -1
  21. package/dist/exports/postgres.d.ts.map +1 -1
  22. package/dist/exports/postgres.js +2 -1
  23. package/dist/exports/postgres.js.map +1 -1
  24. package/dist/exports/sqlite.d.ts +2 -1
  25. package/dist/exports/sqlite.d.ts.map +1 -1
  26. package/dist/exports/sqlite.js +2 -1
  27. package/dist/exports/sqlite.js.map +1 -1
  28. package/dist/find/buildFindManyArgs.d.ts +3 -2
  29. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  30. package/dist/find/buildFindManyArgs.js +2 -1
  31. package/dist/find/buildFindManyArgs.js.map +1 -1
  32. package/dist/find/buildPolymorphicJoinQuery.d.ts +5 -3
  33. package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -1
  34. package/dist/find/buildPolymorphicJoinQuery.js +43 -15
  35. package/dist/find/buildPolymorphicJoinQuery.js.map +1 -1
  36. package/dist/find/buildPolymorphicJoinWhere.js +1 -1
  37. package/dist/find/buildPolymorphicJoinWhere.js.map +1 -1
  38. package/dist/find/createPolymorphicJoinWherePlan.d.ts +2 -1
  39. package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -1
  40. package/dist/find/createPolymorphicJoinWherePlan.js +14 -5
  41. package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -1
  42. package/dist/find/findMany.d.ts +6 -1
  43. package/dist/find/findMany.d.ts.map +1 -1
  44. package/dist/find/findMany.js +16 -3
  45. package/dist/find/findMany.js.map +1 -1
  46. package/dist/find/traverseFields.d.ts +3 -2
  47. package/dist/find/traverseFields.d.ts.map +1 -1
  48. package/dist/find/traverseFields.js +55 -7
  49. package/dist/find/traverseFields.js.map +1 -1
  50. package/dist/find.d.ts.map +1 -1
  51. package/dist/find.js +32 -4
  52. package/dist/find.js.map +1 -1
  53. package/dist/findDistinct.d.ts.map +1 -1
  54. package/dist/findDistinct.js +107 -8
  55. package/dist/findDistinct.js.map +1 -1
  56. package/dist/findGlobal.d.ts.map +1 -1
  57. package/dist/findGlobal.js +22 -5
  58. package/dist/findGlobal.js.map +1 -1
  59. package/dist/findGlobalVersions.js +8 -3
  60. package/dist/findGlobalVersions.js.map +1 -1
  61. package/dist/findOne.d.ts +1 -1
  62. package/dist/findOne.d.ts.map +1 -1
  63. package/dist/findOne.js +30 -3
  64. package/dist/findOne.js.map +1 -1
  65. package/dist/findVersions.d.ts.map +1 -1
  66. package/dist/findVersions.js +32 -5
  67. package/dist/findVersions.js.map +1 -1
  68. package/dist/index.d.ts +3 -8
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +3 -8
  71. package/dist/index.js.map +1 -1
  72. package/dist/migrate.d.ts.map +1 -1
  73. package/dist/migrate.js +6 -2
  74. package/dist/migrate.js.map +1 -1
  75. package/dist/migrateDown.d.ts.map +1 -1
  76. package/dist/migrateDown.js +5 -2
  77. package/dist/migrateDown.js.map +1 -1
  78. package/dist/migrateFresh.d.ts.map +1 -1
  79. package/dist/migrateFresh.js +5 -2
  80. package/dist/migrateFresh.js.map +1 -1
  81. package/dist/migrateRefresh.d.ts.map +1 -1
  82. package/dist/migrateRefresh.js +6 -2
  83. package/dist/migrateRefresh.js.map +1 -1
  84. package/dist/migrateReset.d.ts.map +1 -1
  85. package/dist/migrateReset.js +6 -2
  86. package/dist/migrateReset.js.map +1 -1
  87. package/dist/postgres/insert.d.ts.map +1 -1
  88. package/dist/postgres/insert.js +4 -2
  89. package/dist/postgres/insert.js.map +1 -1
  90. package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts +35 -0
  91. package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
  92. package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js +185 -0
  93. package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
  94. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
  95. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js +8 -4
  96. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
  97. package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
  98. package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
  99. package/dist/postgres/requireDrizzleKit.d.ts +4 -0
  100. package/dist/postgres/requireDrizzleKit.d.ts.map +1 -1
  101. package/dist/postgres/requireDrizzleKit.js +16 -10
  102. package/dist/postgres/requireDrizzleKit.js.map +1 -1
  103. package/dist/postgres/types.d.ts +4 -0
  104. package/dist/postgres/types.d.ts.map +1 -1
  105. package/dist/postgres/types.js.map +1 -1
  106. package/dist/queries/buildAndOrConditions.d.ts +3 -2
  107. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  108. package/dist/queries/buildAndOrConditions.js +2 -1
  109. package/dist/queries/buildAndOrConditions.js.map +1 -1
  110. package/dist/queries/buildBranchVisibility.d.ts +11 -0
  111. package/dist/queries/buildBranchVisibility.d.ts.map +1 -0
  112. package/dist/queries/buildBranchVisibility.js +48 -0
  113. package/dist/queries/buildBranchVisibility.js.map +1 -0
  114. package/dist/queries/buildOrderBy.d.ts +3 -2
  115. package/dist/queries/buildOrderBy.d.ts.map +1 -1
  116. package/dist/queries/buildOrderBy.js +2 -1
  117. package/dist/queries/buildOrderBy.js.map +1 -1
  118. package/dist/queries/buildQuery.d.ts +3 -2
  119. package/dist/queries/buildQuery.d.ts.map +1 -1
  120. package/dist/queries/buildQuery.js +4 -2
  121. package/dist/queries/buildQuery.js.map +1 -1
  122. package/dist/queries/getTableColumnFromPath.d.ts +3 -2
  123. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  124. package/dist/queries/getTableColumnFromPath.js +166 -27
  125. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  126. package/dist/queries/parseParams.d.ts +3 -2
  127. package/dist/queries/parseParams.d.ts.map +1 -1
  128. package/dist/queries/parseParams.js +4 -1
  129. package/dist/queries/parseParams.js.map +1 -1
  130. package/dist/queryDrafts.d.ts.map +1 -1
  131. package/dist/queryDrafts.js +23 -4
  132. package/dist/queryDrafts.js.map +1 -1
  133. package/dist/schema/build.d.ts.map +1 -1
  134. package/dist/schema/build.js +23 -20
  135. package/dist/schema/build.js.map +1 -1
  136. package/dist/sqlite/createRequireDrizzleKit.d.ts +6 -0
  137. package/dist/sqlite/createRequireDrizzleKit.d.ts.map +1 -0
  138. package/dist/sqlite/createRequireDrizzleKit.js +15 -0
  139. package/dist/sqlite/createRequireDrizzleKit.js.map +1 -0
  140. package/dist/sqlite/execute.js.map +1 -1
  141. package/dist/sqlite/insert.d.ts.map +1 -1
  142. package/dist/sqlite/insert.js +9 -4
  143. package/dist/sqlite/insert.js.map +1 -1
  144. package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts +15 -0
  145. package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
  146. package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js +114 -0
  147. package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
  148. package/dist/sqlite/types.d.ts +4 -0
  149. package/dist/sqlite/types.d.ts.map +1 -1
  150. package/dist/sqlite/types.js.map +1 -1
  151. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  152. package/dist/transactions/beginTransaction.js +13 -5
  153. package/dist/transactions/beginTransaction.js.map +1 -1
  154. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  155. package/dist/transactions/commitTransaction.js +1 -5
  156. package/dist/transactions/commitTransaction.js.map +1 -1
  157. package/dist/transform/read/traverseFields.js.map +1 -1
  158. package/dist/transform/write/array.d.ts +3 -2
  159. package/dist/transform/write/array.d.ts.map +1 -1
  160. package/dist/transform/write/array.js +2 -1
  161. package/dist/transform/write/array.js.map +1 -1
  162. package/dist/transform/write/blocks.d.ts +3 -2
  163. package/dist/transform/write/blocks.d.ts.map +1 -1
  164. package/dist/transform/write/blocks.js +2 -1
  165. package/dist/transform/write/blocks.js.map +1 -1
  166. package/dist/transform/write/index.d.ts.map +1 -1
  167. package/dist/transform/write/index.js +2 -0
  168. package/dist/transform/write/index.js.map +1 -1
  169. package/dist/transform/write/traverseFields.d.ts +2 -1
  170. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  171. package/dist/transform/write/traverseFields.js +32 -6
  172. package/dist/transform/write/traverseFields.js.map +1 -1
  173. package/dist/transform/write/types.d.ts +7 -0
  174. package/dist/transform/write/types.d.ts.map +1 -1
  175. package/dist/transform/write/types.js.map +1 -1
  176. package/dist/types.d.ts +3 -2
  177. package/dist/types.d.ts.map +1 -1
  178. package/dist/types.js.map +1 -1
  179. package/dist/updateGlobal.d.ts +5 -1
  180. package/dist/updateGlobal.d.ts.map +1 -1
  181. package/dist/updateGlobal.js +96 -4
  182. package/dist/updateGlobal.js.map +1 -1
  183. package/dist/updateOne.d.ts.map +1 -1
  184. package/dist/updateOne.js +47 -5
  185. package/dist/updateOne.js.map +1 -1
  186. package/dist/upsertBranchGlobalChange.d.ts +3 -0
  187. package/dist/upsertBranchGlobalChange.d.ts.map +1 -0
  188. package/dist/upsertBranchGlobalChange.js +35 -0
  189. package/dist/upsertBranchGlobalChange.js.map +1 -0
  190. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
  191. package/dist/upsertRow/deleteExistingRowsByPath.js +17 -12
  192. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
  193. package/dist/upsertRow/index.d.ts +1 -1
  194. package/dist/upsertRow/index.d.ts.map +1 -1
  195. package/dist/upsertRow/index.js +132 -42
  196. package/dist/upsertRow/index.js.map +1 -1
  197. package/dist/upsertRow/types.d.ts +3 -0
  198. package/dist/upsertRow/types.d.ts.map +1 -1
  199. package/dist/upsertRow/types.js.map +1 -1
  200. package/dist/utilities/blocksToJsonMigrator.d.ts.map +1 -1
  201. package/dist/utilities/blocksToJsonMigrator.js +7 -18
  202. package/dist/utilities/blocksToJsonMigrator.js.map +1 -1
  203. package/dist/utilities/buildCreateMigration.js +1 -1
  204. package/dist/utilities/buildCreateMigration.js.map +1 -1
  205. package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts +15 -0
  206. package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts.map +1 -0
  207. package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js +110 -0
  208. package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js.map +1 -0
  209. package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
  210. package/dist/utilities/createSchemaGenerator.js +7 -12
  211. package/dist/utilities/createSchemaGenerator.js.map +1 -1
  212. package/dist/utilities/executeSchemaHooks.js +1 -1
  213. package/dist/utilities/executeSchemaHooks.js.map +1 -1
  214. package/dist/utilities/formatGeneratedFile.d.ts +10 -0
  215. package/dist/utilities/formatGeneratedFile.d.ts.map +1 -0
  216. package/dist/utilities/formatGeneratedFile.js +58 -0
  217. package/dist/utilities/formatGeneratedFile.js.map +1 -0
  218. package/dist/utilities/getSizesToVariantsRenames.d.ts +54 -0
  219. package/dist/utilities/getSizesToVariantsRenames.d.ts.map +1 -0
  220. package/dist/utilities/getSizesToVariantsRenames.js +251 -0
  221. package/dist/utilities/getSizesToVariantsRenames.js.map +1 -0
  222. package/dist/utilities/getTransaction.js.map +1 -1
  223. package/dist/utilities/pushDevSchema.js +1 -1
  224. package/dist/utilities/pushDevSchema.js.map +1 -1
  225. package/package.json +17 -19
  226. package/dist/sqlite/requireDrizzleKit.d.ts +0 -3
  227. package/dist/sqlite/requireDrizzleKit.d.ts.map +0 -1
  228. package/dist/sqlite/requireDrizzleKit.js +0 -12
  229. package/dist/sqlite/requireDrizzleKit.js.map +0 -1
package/dist/migrate.js CHANGED
@@ -1,4 +1,4 @@
1
- import { commitTransaction, createLocalReq, initTransaction, killTransaction, readMigrationFiles } from 'payload';
1
+ import { commitTransaction, createPayloadRequest, initTransaction, killTransaction, readMigrationFiles } from 'payload';
2
2
  import prompts from 'prompts';
3
3
  import { getTransaction } from './utilities/getTransaction.js';
4
4
  import { migrationTableExists } from './utilities/migrationTableExists.js';
@@ -29,6 +29,7 @@ export const migrate = async function migrate(args) {
29
29
  ({ docs: migrationsInDB } = await payload.find({
30
30
  collection: 'payload-migrations',
31
31
  limit: 0,
32
+ overrideAccess: true,
32
33
  sort: '-name'
33
34
  }));
34
35
  if (migrationsInDB.find((m)=>m.batch === -1)) {
@@ -83,7 +84,9 @@ export const migrate = async function migrate(args) {
83
84
  };
84
85
  async function runMigrationFile(payload, migration, batch) {
85
86
  const start = Date.now();
86
- const req = await createLocalReq({}, payload);
87
+ const req = await createPayloadRequest({
88
+ payload
89
+ });
87
90
  payload.logger.info({
88
91
  msg: `Migrating: ${migration.name}`
89
92
  });
@@ -104,6 +107,7 @@ async function runMigrationFile(payload, migration, batch) {
104
107
  name: migration.name,
105
108
  batch
106
109
  },
110
+ overrideAccess: true,
107
111
  req
108
112
  });
109
113
  await commitTransaction(req);
@@ -1 +1 @@
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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"}
1
+ {"version":3,"sources":["../src/migrate.ts"],"sourcesContent":["import type { MigrationResult, Payload } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\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 overrideAccess: true,\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 createPayloadRequest({ 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 overrideAccess: true,\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","createPayloadRequest","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","overrideAccess","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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"}
@@ -1 +1 @@
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"}
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,CA+DhF"}
@@ -1,4 +1,4 @@
1
- import { commitTransaction, createLocalReq, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
1
+ import { commitTransaction, createPayloadRequest, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
2
2
  import { getTransaction } from './utilities/getTransaction.js';
3
3
  import { migrationTableExists } from './utilities/migrationTableExists.js';
4
4
  import { parseError } from './utilities/parseError.js';
@@ -30,7 +30,9 @@ export async function migrateDown() {
30
30
  throw new Error(`Migration ${migration.name} not found locally.`);
31
31
  }
32
32
  const start = Date.now();
33
- const req = await createLocalReq({}, payload);
33
+ const req = await createPayloadRequest({
34
+ payload
35
+ });
34
36
  try {
35
37
  payload.logger.info({
36
38
  msg: `Migrating down: ${migrationFile.name}`
@@ -50,6 +52,7 @@ export async function migrateDown() {
50
52
  await payload.delete({
51
53
  id: migration.id,
52
54
  collection: 'payload-migrations',
55
+ overrideAccess: true,
53
56
  req
54
57
  });
55
58
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["../src/migrateDown.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\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 createPayloadRequest({ 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 overrideAccess: true,\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","createPayloadRequest","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","overrideAccess","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,oBAAoB,EACpBC,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,qBAAqB;YAAES;QAAQ;QAEjD,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;oBACZC,gBAAgB;oBAChBP;gBACF;YACF;YAEA,MAAMhC,kBAAkBgC;YACxBb,WAAWqB,IAAI,CAAChB,cAAcG,IAAI;QACpC,EAAE,OAAOc,KAAc;YACrB,MAAMrC,gBAAgB4B;YAEtBtB,QAAQK,MAAM,CAAC2B,KAAK,CAAC;gBACnBD;gBACAxB,KAAKT,WAAWiC,KAAK,CAAC,qBAAqB,EAAEjB,cAAcG,IAAI,CAAC,eAAe,CAAC;YAClF;YACA,MAAMc;QACR;IACF;IAEA,OAAO;QAAEnB,OAAOT;QAAaK,UAAU,EAAE;QAAEC;IAAW;AACxD"}
@@ -1 +1 @@
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"}
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,CAsE1B"}
@@ -1,4 +1,4 @@
1
- import { commitTransaction, createLocalReq, initTransaction, killTransaction, readMigrationFiles } from 'payload';
1
+ import { commitTransaction, createPayloadRequest, initTransaction, killTransaction, readMigrationFiles } from 'payload';
2
2
  import prompts from 'prompts';
3
3
  import { getTransaction } from './utilities/getTransaction.js';
4
4
  import { parseError } from './utilities/parseError.js';
@@ -40,7 +40,9 @@ import { parseError } from './utilities/parseError.js';
40
40
  payload.logger.debug({
41
41
  msg: `Found ${migrationFiles.length} migration files.`
42
42
  });
43
- const req = await createLocalReq({}, payload);
43
+ const req = await createPayloadRequest({
44
+ payload
45
+ });
44
46
  const migrated = [];
45
47
  if ('createExtensions' in this && typeof this.createExtensions === 'function') {
46
48
  await this.createExtensions();
@@ -65,6 +67,7 @@ import { parseError } from './utilities/parseError.js';
65
67
  name: migration.name,
66
68
  batch: 1
67
69
  },
70
+ overrideAccess: true,
68
71
  req
69
72
  });
70
73
  await commitTransaction(req);
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\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 createPayloadRequest({ 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 overrideAccess: true,\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","createPayloadRequest","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","overrideAccess","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,oBAAoB,EACpBC,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,qBAAqB;QAAEU;IAAQ;IACjD,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;gBACAC,gBAAgB;gBAChBZ;YACF;YACA,MAAM7B,kBAAkB6B;YACxBhB,SAAS6B,IAAI,CAACX,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,OAAOW,KAAc;YACrB,MAAMxC,gBAAgB0B;YACtBlB,QAAQU,MAAM,CAACuB,KAAK,CAAC;gBACnBD;gBACApB,KAAKhB,WAAWoC,KAAK,CAAC,wBAAwB,EAAEZ,UAAUd,IAAI,CAAC,cAAc,CAAC;YAChF;YACA,MAAM0B;QACR;IACF;IAEA,OAAO;QAAEH,OAAO;QAAG3B;QAAUC,YAAY,EAAE;IAAC;AAC9C"}
@@ -1 +1 @@
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"}
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,CAgGnF"}
@@ -1,4 +1,4 @@
1
- import { commitTransaction, createLocalReq, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
1
+ import { commitTransaction, createPayloadRequest, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
2
2
  import { getTransaction } from './utilities/getTransaction.js';
3
3
  import { migrationTableExists } from './utilities/migrationTableExists.js';
4
4
  import { parseError } from './utilities/parseError.js';
@@ -24,7 +24,9 @@ import { parseError } from './utilities/parseError.js';
24
24
  payload.logger.info({
25
25
  msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`
26
26
  });
27
- const req = await createLocalReq({}, payload);
27
+ const req = await createPayloadRequest({
28
+ payload
29
+ });
28
30
  const migrated = [];
29
31
  const rolledBack = [];
30
32
  // Reverse order of migrations to rollback
@@ -53,6 +55,7 @@ import { parseError } from './utilities/parseError.js';
53
55
  if (tableExists) {
54
56
  await payload.delete({
55
57
  collection: 'payload-migrations',
58
+ overrideAccess: true,
56
59
  req,
57
60
  where: {
58
61
  name: {
@@ -90,6 +93,7 @@ import { parseError } from './utilities/parseError.js';
90
93
  name: migration.name,
91
94
  executed: true
92
95
  },
96
+ overrideAccess: true,
93
97
  req
94
98
  });
95
99
  await commitTransaction(req);
@@ -1 +1 @@
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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"}
1
+ {"version":3,"sources":["../src/migrateRefresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\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 createPayloadRequest({ 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 overrideAccess: true,\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 overrideAccess: true,\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","createPayloadRequest","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","overrideAccess","where","equals","push","err","error","up","create","data","executed"],"mappings":"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"}
@@ -1 +1 @@
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"}
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,CAkFjF"}
@@ -1,4 +1,4 @@
1
- import { commitTransaction, createLocalReq, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
1
+ import { commitTransaction, createPayloadRequest, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
2
2
  import { getTransaction } from './utilities/getTransaction.js';
3
3
  import { migrationTableExists } from './utilities/migrationTableExists.js';
4
4
  /**
@@ -20,7 +20,9 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
20
20
  rolledBack: []
21
21
  };
22
22
  }
23
- const req = await createLocalReq({}, payload);
23
+ const req = await createPayloadRequest({
24
+ payload
25
+ });
24
26
  existingMigrations.reverse();
25
27
  const rolledBack = [];
26
28
  // Rollback all migrations in order
@@ -49,6 +51,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
49
51
  await payload.delete({
50
52
  id: migration.id,
51
53
  collection: 'payload-migrations',
54
+ overrideAccess: true,
52
55
  req
53
56
  });
54
57
  }
@@ -73,6 +76,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
73
76
  try {
74
77
  await payload.delete({
75
78
  collection: 'payload-migrations',
79
+ overrideAccess: true,
76
80
  where: {
77
81
  batch: {
78
82
  equals: -1
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\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 createPayloadRequest({ 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 overrideAccess: true,\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 overrideAccess: true,\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","createPayloadRequest","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","overrideAccess","push","err","message","error","where","batch","equals"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,oBAAoB,EACpBC,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,qBAAqB;QAAEQ;IAAQ;IAEjDE,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;oBACZC,gBAAgB;oBAChBjB;gBACF;YACF;YAEA,MAAMlB,kBAAkBkB;YACxBD,WAAWmB,IAAI,CAACf,cAAcG,IAAI;QACpC,EAAE,OAAOa,KAAc;YACrB,IAAItB,MAAM,CAAC,wBAAwB,EAAEM,cAAcG,IAAI,CAAC,CAAC,CAAC;YAE1D,IAAIa,eAAeZ,OAAO;gBACxBV,OAAO,CAAC,CAAC,EAAEsB,IAAIC,OAAO,EAAE;YAC1B;YAEA,MAAMlC,gBAAgBc;YACtBT,QAAQI,MAAM,CAAC0B,KAAK,CAAC;gBACnBF;gBACAtB;YACF;YACA,MAAMsB;QACR;IACF;IAEA,uBAAuB;IAEvB,MAAMN,cAAc,MAAMxB,qBAAqB,IAAI;IACnD,IAAIwB,aAAa;QACf,IAAI;YACF,MAAMtB,QAAQuB,MAAM,CAAC;gBACnBE,YAAY;gBACZC,gBAAgB;gBAChBK,OAAO;oBACLC,OAAO;wBACLC,QAAQ,CAAC;oBACX;gBACF;YACF;QACF,EAAE,OAAOL,KAAc;YACrB5B,QAAQI,MAAM,CAAC0B,KAAK,CAAC;gBAAEF;gBAAKtB,KAAK;YAA+B;YAChE,MAAMsB;QACR;IACF;IAEA,OAAO;QAAErB,UAAU,EAAE;QAAEC;IAAW;AACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/postgres/insert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,MAAM,EAAE,MAoBpB,CAAA"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/postgres/insert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,MAAM,EAAE,MA2BpB,CAAA"}
@@ -1,7 +1,9 @@
1
- export const insert = async function insert({ db, onConflictDoUpdate, tableName, values }) {
1
+ export const insert = async function insert({ db, onConflictDoNothing, onConflictDoUpdate, tableName, values }) {
2
2
  const table = this.tables[tableName];
3
3
  let result;
4
- if (onConflictDoUpdate) {
4
+ if (onConflictDoNothing) {
5
+ result = await db.insert(table).values(values).onConflictDoNothing(onConflictDoNothing).returning();
6
+ } else if (onConflictDoUpdate) {
5
7
  result = await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning();
6
8
  } else {
7
9
  result = await db.insert(table).values(values).returning();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres/insert.ts"],"sourcesContent":["import type { TransactionPg } from '../types.js'\nimport type { Insert } from './types.js'\n\nexport const insert: Insert = async function insert({\n db,\n onConflictDoUpdate,\n tableName,\n values,\n}): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n let result\n\n if (onConflictDoUpdate) {\n result = await (db as TransactionPg)\n .insert(table)\n .values(values)\n .onConflictDoUpdate(onConflictDoUpdate)\n .returning()\n } else {\n result = await (db as TransactionPg).insert(table).values(values).returning()\n }\n\n return result\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAGA,OAAO,MAAMA,SAAiB,eAAeA,OAAO,EAClDC,EAAE,EACFC,kBAAkB,EAClBC,SAAS,EACTC,MAAM,EACP;IACC,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IACpC,IAAII;IAEJ,IAAIL,oBAAoB;QACtBK,SAAS,MAAM,AAACN,GACbD,MAAM,CAACK,OACPD,MAAM,CAACA,QACPF,kBAAkB,CAACA,oBACnBM,SAAS;IACd,OAAO;QACLD,SAAS,MAAM,AAACN,GAAqBD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAC7E;IAEA,OAAOD;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/postgres/insert.ts"],"sourcesContent":["import type { TransactionPg } from '../types.js'\nimport type { Insert } from './types.js'\n\nexport const insert: Insert = async function insert({\n db,\n onConflictDoNothing,\n onConflictDoUpdate,\n tableName,\n values,\n}): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n let result\n\n if (onConflictDoNothing) {\n result = await (db as TransactionPg)\n .insert(table)\n .values(values)\n .onConflictDoNothing(onConflictDoNothing)\n .returning()\n } else if (onConflictDoUpdate) {\n result = await (db as TransactionPg)\n .insert(table)\n .values(values)\n .onConflictDoUpdate(onConflictDoUpdate)\n .returning()\n } else {\n result = await (db as TransactionPg).insert(table).values(values).returning()\n }\n\n return result\n}\n"],"names":["insert","db","onConflictDoNothing","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAGA,OAAO,MAAMA,SAAiB,eAAeA,OAAO,EAClDC,EAAE,EACFC,mBAAmB,EACnBC,kBAAkB,EAClBC,SAAS,EACTC,MAAM,EACP;IACC,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IACpC,IAAII;IAEJ,IAAIN,qBAAqB;QACvBM,SAAS,MAAM,AAACP,GACbD,MAAM,CAACM,OACPD,MAAM,CAACA,QACPH,mBAAmB,CAACA,qBACpBO,SAAS;IACd,OAAO,IAAIN,oBAAoB;QAC7BK,SAAS,MAAM,AAACP,GACbD,MAAM,CAACM,OACPD,MAAM,CAACA,QACPF,kBAAkB,CAACA,oBACnBM,SAAS;IACd,OAAO;QACLD,SAAS,MAAM,AAACP,GAAqBD,MAAM,CAACM,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAC7E;IAEA,OAAOD;AACT,EAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Payload } from 'payload';
2
+ import type { SizesToVariantsDirection, SizesToVariantsIndexRename } from '../../../utilities/getSizesToVariantsRenames.js';
3
+ type ExistingPostgresIndex = {
4
+ columns: string[];
5
+ isPartial: boolean;
6
+ name: string;
7
+ unique: boolean;
8
+ };
9
+ /**
10
+ * Moves every upload collection's stored image sizes between the legacy `sizes_*` columns and
11
+ * `variants_*` (main and versions tables), renaming each column in place so no data is copied,
12
+ * then renames the indexes on those columns to what the current schema expects. Skips columns
13
+ * that are already renamed, so it's safe to re-run.
14
+ */
15
+ export declare function migratePostgresSizesToVariants({ db, direction, payload, }: {
16
+ db: any;
17
+ direction?: SizesToVariantsDirection;
18
+ payload: Payload;
19
+ }): Promise<void>;
20
+ export declare function reservePostgresLegacyIndexName({ existingIndexes, index, reservedRelationNames, }: {
21
+ existingIndexes: ExistingPostgresIndex[];
22
+ index: SizesToVariantsIndexRename;
23
+ reservedRelationNames: Set<string>;
24
+ }): string;
25
+ export declare function resolvePostgresIndexRename({ existingIndexes, index, tableName, }: {
26
+ existingIndexes: ExistingPostgresIndex[];
27
+ index: SizesToVariantsIndexRename;
28
+ tableName: string;
29
+ }): string | undefined;
30
+ export declare function getPostgresSchemaRelationNames({ db, schemaName, }: {
31
+ db: any;
32
+ schemaName: string;
33
+ }): Promise<Set<string>>;
34
+ export {};
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/postgres/predefinedMigrations/sizes-to-variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,iDAAiD,CAAA;AAUxD,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,EACnD,EAAE,EACF,SAAgB,EAChB,OAAO,GACR,EAAE;IACD,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,CAAC,EAAE,wBAAwB,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EhB;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,eAAe,EACf,KAAK,EACL,qBAAqB,GACtB,EAAE;IACD,eAAe,EAAE,qBAAqB,EAAE,CAAA;IACxC,KAAK,EAAE,0BAA0B,CAAA;IACjC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACnC,GAAG,MAAM,CAgCT;AAED,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,KAAK,EACL,SAAS,GACV,EAAE;IACD,eAAe,EAAE,qBAAqB,EAAE,CAAA;IACxC,KAAK,EAAE,0BAA0B,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,GAAG,SAAS,CA2CrB;AAoED,wBAAsB,8BAA8B,CAAC,EACnD,EAAE,EACF,UAAU,GACX,EAAE;IACD,EAAE,EAAE,GAAG,CAAA;IACP,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CASvB"}
@@ -0,0 +1,185 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { assertNoSizesToVariantsColumnCollisions, buildGeneratedLegacyIndexName, getSizesToVariantsRenames, isGeneratedLegacyIndexName } from '../../../utilities/getSizesToVariantsRenames.js';
3
+ /**
4
+ * Moves every upload collection's stored image sizes between the legacy `sizes_*` columns and
5
+ * `variants_*` (main and versions tables), renaming each column in place so no data is copied,
6
+ * then renames the indexes on those columns to what the current schema expects. Skips columns
7
+ * that are already renamed, so it's safe to re-run.
8
+ */ export async function migratePostgresSizesToVariants({ db, direction = 'up', payload }) {
9
+ const adapter = payload.db;
10
+ const schemaName = adapter.schemaName || 'public';
11
+ const plan = getSizesToVariantsRenames({
12
+ adapter,
13
+ direction
14
+ });
15
+ const plannedTables = [];
16
+ for (const tablePlan of plan){
17
+ const existingColumns = await getColumnNames({
18
+ db,
19
+ schemaName,
20
+ tableName: tablePlan.tableName
21
+ });
22
+ assertNoSizesToVariantsColumnCollisions({
23
+ columns: tablePlan.columns,
24
+ existingColumns,
25
+ tableName: tablePlan.tableName
26
+ });
27
+ plannedTables.push({
28
+ ...tablePlan,
29
+ existingColumns
30
+ });
31
+ }
32
+ const reservedRelationNames = direction === 'down' ? await getPostgresSchemaRelationNames({
33
+ db,
34
+ schemaName
35
+ }) : undefined;
36
+ for (const { columns, existingColumns, indexes, tableName } of plannedTables){
37
+ let renamedCount = 0;
38
+ for (const { from, to } of columns){
39
+ if (!existingColumns.has(from) || existingColumns.has(to)) {
40
+ continue;
41
+ }
42
+ await db.execute(sql`
43
+ ALTER TABLE ${sql.identifier(schemaName)}.${sql.identifier(tableName)}
44
+ RENAME COLUMN ${sql.identifier(from)} TO ${sql.identifier(to)}
45
+ `);
46
+ renamedCount++;
47
+ }
48
+ const existingIndexes = await getIndexes({
49
+ db,
50
+ schemaName,
51
+ tableName
52
+ });
53
+ for (const plannedIndex of indexes){
54
+ const index = reservedRelationNames && plannedIndex.legacyNameBase ? {
55
+ ...plannedIndex,
56
+ to: reservePostgresLegacyIndexName({
57
+ existingIndexes,
58
+ index: plannedIndex,
59
+ reservedRelationNames
60
+ })
61
+ } : plannedIndex;
62
+ const existingName = resolvePostgresIndexRename({
63
+ existingIndexes,
64
+ index,
65
+ tableName
66
+ });
67
+ if (!existingName) {
68
+ continue;
69
+ }
70
+ await db.execute(sql`
71
+ ALTER INDEX ${sql.identifier(schemaName)}.${sql.identifier(existingName)}
72
+ RENAME TO ${sql.identifier(index.to)}
73
+ `);
74
+ }
75
+ payload.logger.info({
76
+ msg: `sizes-to-variants (${direction}): renamed ${renamedCount} column(s) on "${tableName}"`
77
+ });
78
+ }
79
+ }
80
+ export function reservePostgresLegacyIndexName({ existingIndexes, index, reservedRelationNames }) {
81
+ const { legacyNameBase } = index;
82
+ if (!legacyNameBase) {
83
+ reservedRelationNames.add(index.to);
84
+ return index.to;
85
+ }
86
+ const existingDestination = existingIndexes.find((existingIndex)=>isCompatiblePostgresIndex({
87
+ existingIndex,
88
+ index
89
+ }) && isGeneratedLegacyIndexName({
90
+ indexName: existingIndex.name,
91
+ legacyNameBase
92
+ }));
93
+ if (existingDestination) {
94
+ reservedRelationNames.add(existingDestination.name);
95
+ return existingDestination.name;
96
+ }
97
+ let number = 0;
98
+ let indexName = buildGeneratedLegacyIndexName(legacyNameBase);
99
+ while(reservedRelationNames.has(indexName)){
100
+ number++;
101
+ indexName = buildGeneratedLegacyIndexName(legacyNameBase, number);
102
+ }
103
+ reservedRelationNames.add(indexName);
104
+ return indexName;
105
+ }
106
+ export function resolvePostgresIndexRename({ existingIndexes, index, tableName }) {
107
+ const destinationIndex = existingIndexes.find(({ name })=>name === index.to);
108
+ if (destinationIndex) {
109
+ if (!isCompatiblePostgresIndex({
110
+ existingIndex: destinationIndex,
111
+ index
112
+ })) {
113
+ throw new Error(`Cannot run the sizes-to-variants migration because index "${index.to}" on table "${tableName}" does not match the expected columns, uniqueness, or predicate.`);
114
+ }
115
+ return undefined;
116
+ }
117
+ let sourceIndex;
118
+ const { legacyNameBase } = index;
119
+ if (index.from) {
120
+ sourceIndex = existingIndexes.find(({ name })=>name === index.from);
121
+ } else if (legacyNameBase) {
122
+ const legacyCandidates = existingIndexes.filter((existingIndex)=>isGeneratedLegacyIndexName({
123
+ indexName: existingIndex.name,
124
+ legacyNameBase
125
+ }));
126
+ sourceIndex = legacyCandidates.find((existingIndex)=>isCompatiblePostgresIndex({
127
+ existingIndex,
128
+ index
129
+ })) ?? legacyCandidates[0];
130
+ }
131
+ if (!sourceIndex) {
132
+ return undefined;
133
+ }
134
+ if (!isCompatiblePostgresIndex({
135
+ existingIndex: sourceIndex,
136
+ index
137
+ })) {
138
+ throw new Error(`Cannot run the sizes-to-variants migration because index "${sourceIndex.name}" on table "${tableName}" does not match the expected columns, uniqueness, or predicate.`);
139
+ }
140
+ return sourceIndex.name === index.to ? undefined : sourceIndex.name;
141
+ }
142
+ function isCompatiblePostgresIndex({ existingIndex, index }) {
143
+ return existingIndex.columns.join(',') === index.columns.join(',') && existingIndex.unique === index.unique && !existingIndex.isPartial;
144
+ }
145
+ async function getColumnNames({ db, schemaName, tableName }) {
146
+ const result = await db.execute(sql`
147
+ SELECT column_name FROM information_schema.columns
148
+ WHERE table_schema = ${schemaName} AND table_name = ${tableName}
149
+ `);
150
+ return new Set(result.rows.map((row)=>row.column_name));
151
+ }
152
+ async function getIndexes({ db, schemaName, tableName }) {
153
+ const result = await db.execute(sql`
154
+ SELECT
155
+ i.relname AS name,
156
+ array_agg(a.attname::text ORDER BY k.ord) AS columns,
157
+ ix.indisunique AS is_unique,
158
+ ix.indpred IS NOT NULL AS is_partial
159
+ FROM pg_index ix
160
+ JOIN pg_class t ON t.oid = ix.indrelid
161
+ JOIN pg_namespace n ON n.oid = t.relnamespace
162
+ JOIN pg_class i ON i.oid = ix.indexrelid
163
+ CROSS JOIN LATERAL unnest(ix.indkey) WITH ORDINALITY AS k(attnum, ord)
164
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = k.attnum
165
+ WHERE n.nspname = ${schemaName} AND t.relname = ${tableName}
166
+ GROUP BY i.relname, ix.indisunique, (ix.indpred IS NOT NULL)
167
+ `);
168
+ return result.rows.map((row)=>({
169
+ name: row.name,
170
+ columns: row.columns,
171
+ isPartial: row.is_partial,
172
+ unique: row.is_unique
173
+ }));
174
+ }
175
+ export async function getPostgresSchemaRelationNames({ db, schemaName }) {
176
+ const result = await db.execute(sql`
177
+ SELECT c.relname AS name
178
+ FROM pg_class c
179
+ JOIN pg_namespace n ON n.oid = c.relnamespace
180
+ WHERE n.nspname = ${schemaName}
181
+ `);
182
+ return new Set(result.rows.map((row)=>row.name));
183
+ }
184
+
185
+ //# sourceMappingURL=index.js.map