@payloadcms/db-postgres 3.0.0-canary.d6053cd → 3.0.0-canary.dc8b1fe

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 (348) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +35 -12
  3. package/dist/connect.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +49 -69
  7. package/dist/index.js.map +1 -1
  8. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts +3 -2
  9. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
  10. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js +1 -1
  11. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
  12. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
  13. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +3 -1
  14. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
  15. package/dist/predefinedMigrations/v2-v3/index.d.ts.map +1 -1
  16. package/dist/predefinedMigrations/v2-v3/index.js +4 -4
  17. package/dist/predefinedMigrations/v2-v3/index.js.map +1 -1
  18. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts +3 -2
  19. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
  20. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js +9 -3
  21. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
  22. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts +3 -2
  23. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
  24. package/dist/predefinedMigrations/v2-v3/traverseFields.js.map +1 -1
  25. package/dist/types.d.ts +65 -78
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/types.js.map +1 -1
  28. package/package.json +14 -12
  29. package/dist/count.d.ts +0 -3
  30. package/dist/count.d.ts.map +0 -1
  31. package/dist/count.js +0 -41
  32. package/dist/count.js.map +0 -1
  33. package/dist/create.d.ts +0 -3
  34. package/dist/create.d.ts.map +0 -1
  35. package/dist/create.js +0 -19
  36. package/dist/create.js.map +0 -1
  37. package/dist/createGlobal.d.ts +0 -4
  38. package/dist/createGlobal.d.ts.map +0 -1
  39. package/dist/createGlobal.js +0 -19
  40. package/dist/createGlobal.js.map +0 -1
  41. package/dist/createGlobalVersion.d.ts +0 -4
  42. package/dist/createGlobalVersion.d.ts.map +0 -1
  43. package/dist/createGlobalVersion.js +0 -33
  44. package/dist/createGlobalVersion.js.map +0 -1
  45. package/dist/createMigration.d.ts +0 -3
  46. package/dist/createMigration.d.ts.map +0 -1
  47. package/dist/createMigration.js +0 -102
  48. package/dist/createMigration.js.map +0 -1
  49. package/dist/createVersion.d.ts +0 -4
  50. package/dist/createVersion.d.ts.map +0 -1
  51. package/dist/createVersion.js +0 -40
  52. package/dist/createVersion.js.map +0 -1
  53. package/dist/deleteMany.d.ts +0 -3
  54. package/dist/deleteMany.d.ts.map +0 -1
  55. package/dist/deleteMany.js +0 -28
  56. package/dist/deleteMany.js.map +0 -1
  57. package/dist/deleteOne.d.ts +0 -3
  58. package/dist/deleteOne.d.ts.map +0 -1
  59. package/dist/deleteOne.js +0 -59
  60. package/dist/deleteOne.js.map +0 -1
  61. package/dist/deleteVersions.d.ts +0 -3
  62. package/dist/deleteVersions.d.ts.map +0 -1
  63. package/dist/deleteVersions.js +0 -31
  64. package/dist/deleteVersions.js.map +0 -1
  65. package/dist/destroy.d.ts +0 -3
  66. package/dist/destroy.d.ts.map +0 -1
  67. package/dist/destroy.js +0 -15
  68. package/dist/destroy.js.map +0 -1
  69. package/dist/find/buildFindManyArgs.d.ts +0 -17
  70. package/dist/find/buildFindManyArgs.d.ts.map +0 -1
  71. package/dist/find/buildFindManyArgs.js +0 -65
  72. package/dist/find/buildFindManyArgs.js.map +0 -1
  73. package/dist/find/chainMethods.d.ts +0 -16
  74. package/dist/find/chainMethods.d.ts.map +0 -1
  75. package/dist/find/chainMethods.js +0 -12
  76. package/dist/find/chainMethods.js.map +0 -1
  77. package/dist/find/findMany.d.ts +0 -21
  78. package/dist/find/findMany.d.ts.map +0 -1
  79. package/dist/find/findMany.js +0 -152
  80. package/dist/find/findMany.js.map +0 -1
  81. package/dist/find/traverseFields.d.ts +0 -17
  82. package/dist/find/traverseFields.d.ts.map +0 -1
  83. package/dist/find/traverseFields.js +0 -156
  84. package/dist/find/traverseFields.js.map +0 -1
  85. package/dist/find.d.ts +0 -3
  86. package/dist/find.d.ts.map +0 -1
  87. package/dist/find.js +0 -21
  88. package/dist/find.js.map +0 -1
  89. package/dist/findGlobal.d.ts +0 -3
  90. package/dist/findGlobal.d.ts.map +0 -1
  91. package/dist/findGlobal.js +0 -23
  92. package/dist/findGlobal.js.map +0 -1
  93. package/dist/findGlobalVersions.d.ts +0 -3
  94. package/dist/findGlobalVersions.d.ts.map +0 -1
  95. package/dist/findGlobalVersions.js +0 -24
  96. package/dist/findGlobalVersions.js.map +0 -1
  97. package/dist/findOne.d.ts +0 -4
  98. package/dist/findOne.d.ts.map +0 -1
  99. package/dist/findOne.js +0 -21
  100. package/dist/findOne.js.map +0 -1
  101. package/dist/findVersions.d.ts +0 -3
  102. package/dist/findVersions.d.ts.map +0 -1
  103. package/dist/findVersions.js +0 -24
  104. package/dist/findVersions.js.map +0 -1
  105. package/dist/init.d.ts +0 -3
  106. package/dist/init.d.ts.map +0 -1
  107. package/dist/init.js +0 -91
  108. package/dist/init.js.map +0 -1
  109. package/dist/migrate.d.ts +0 -3
  110. package/dist/migrate.d.ts.map +0 -1
  111. package/dist/migrate.js +0 -99
  112. package/dist/migrate.js.map +0 -1
  113. package/dist/migrateDown.d.ts +0 -3
  114. package/dist/migrateDown.d.ts.map +0 -1
  115. package/dist/migrateDown.js +0 -63
  116. package/dist/migrateDown.js.map +0 -1
  117. package/dist/migrateFresh.d.ts +0 -8
  118. package/dist/migrateFresh.d.ts.map +0 -1
  119. package/dist/migrateFresh.js +0 -72
  120. package/dist/migrateFresh.js.map +0 -1
  121. package/dist/migrateRefresh.d.ts +0 -6
  122. package/dist/migrateRefresh.d.ts.map +0 -1
  123. package/dist/migrateRefresh.js +0 -102
  124. package/dist/migrateRefresh.js.map +0 -1
  125. package/dist/migrateReset.d.ts +0 -6
  126. package/dist/migrateReset.d.ts.map +0 -1
  127. package/dist/migrateReset.js +0 -82
  128. package/dist/migrateReset.js.map +0 -1
  129. package/dist/migrateStatus.d.ts +0 -3
  130. package/dist/migrateStatus.d.ts.map +0 -1
  131. package/dist/migrateStatus.js +0 -44
  132. package/dist/migrateStatus.js.map +0 -1
  133. package/dist/queries/buildAndOrConditions.d.ts +0 -16
  134. package/dist/queries/buildAndOrConditions.d.ts.map +0 -1
  135. package/dist/queries/buildAndOrConditions.js +0 -28
  136. package/dist/queries/buildAndOrConditions.js.map +0 -1
  137. package/dist/queries/buildQuery.d.ts +0 -30
  138. package/dist/queries/buildQuery.d.ts.map +0 -1
  139. package/dist/queries/buildQuery.js +0 -72
  140. package/dist/queries/buildQuery.js.map +0 -1
  141. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
  142. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
  143. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js +0 -14
  144. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
  145. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts +0 -2
  146. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts.map +0 -1
  147. package/dist/queries/createJSONQuery/formatJSONPathSegment.js +0 -5
  148. package/dist/queries/createJSONQuery/formatJSONPathSegment.js.map +0 -1
  149. package/dist/queries/createJSONQuery/index.d.ts +0 -10
  150. package/dist/queries/createJSONQuery/index.d.ts.map +0 -1
  151. package/dist/queries/createJSONQuery/index.js +0 -54
  152. package/dist/queries/createJSONQuery/index.js.map +0 -1
  153. package/dist/queries/getTableColumnFromPath.d.ts +0 -50
  154. package/dist/queries/getTableColumnFromPath.d.ts.map +0 -1
  155. package/dist/queries/getTableColumnFromPath.js +0 -516
  156. package/dist/queries/getTableColumnFromPath.js.map +0 -1
  157. package/dist/queries/operatorMap.d.ts +0 -18
  158. package/dist/queries/operatorMap.d.ts.map +0 -1
  159. package/dist/queries/operatorMap.js +0 -24
  160. package/dist/queries/operatorMap.js.map +0 -1
  161. package/dist/queries/parseParams.d.ts +0 -16
  162. package/dist/queries/parseParams.d.ts.map +0 -1
  163. package/dist/queries/parseParams.js +0 -183
  164. package/dist/queries/parseParams.js.map +0 -1
  165. package/dist/queries/sanitizeQueryValue.d.ts +0 -15
  166. package/dist/queries/sanitizeQueryValue.d.ts.map +0 -1
  167. package/dist/queries/sanitizeQueryValue.js +0 -89
  168. package/dist/queries/sanitizeQueryValue.js.map +0 -1
  169. package/dist/queries/selectDistinct.d.ts +0 -22
  170. package/dist/queries/selectDistinct.d.ts.map +0 -1
  171. package/dist/queries/selectDistinct.js +0 -30
  172. package/dist/queries/selectDistinct.js.map +0 -1
  173. package/dist/queryDrafts.d.ts +0 -3
  174. package/dist/queryDrafts.d.ts.map +0 -1
  175. package/dist/queryDrafts.js +0 -40
  176. package/dist/queryDrafts.js.map +0 -1
  177. package/dist/schema/build.d.ts +0 -34
  178. package/dist/schema/build.d.ts.map +0 -1
  179. package/dist/schema/build.js +0 -369
  180. package/dist/schema/build.js.map +0 -1
  181. package/dist/schema/createIndex.d.ts +0 -12
  182. package/dist/schema/createIndex.d.ts.map +0 -1
  183. package/dist/schema/createIndex.js +0 -18
  184. package/dist/schema/createIndex.js.map +0 -1
  185. package/dist/schema/createTableName.d.ts +0 -30
  186. package/dist/schema/createTableName.d.ts.map +0 -1
  187. package/dist/schema/createTableName.js +0 -31
  188. package/dist/schema/createTableName.js.map +0 -1
  189. package/dist/schema/idToUUID.d.ts +0 -3
  190. package/dist/schema/idToUUID.d.ts.map +0 -1
  191. package/dist/schema/idToUUID.js +0 -11
  192. package/dist/schema/idToUUID.js.map +0 -1
  193. package/dist/schema/parentIDColumnMap.d.ts +0 -4
  194. package/dist/schema/parentIDColumnMap.d.ts.map +0 -1
  195. package/dist/schema/parentIDColumnMap.js +0 -9
  196. package/dist/schema/parentIDColumnMap.js.map +0 -1
  197. package/dist/schema/setColumnID.d.ts +0 -11
  198. package/dist/schema/setColumnID.d.ts.map +0 -1
  199. package/dist/schema/setColumnID.js +0 -24
  200. package/dist/schema/setColumnID.js.map +0 -1
  201. package/dist/schema/traverseFields.d.ts +0 -36
  202. package/dist/schema/traverseFields.d.ts.map +0 -1
  203. package/dist/schema/traverseFields.js +0 -614
  204. package/dist/schema/traverseFields.js.map +0 -1
  205. package/dist/schema/validateExistingBlockIsIdentical.d.ts +0 -12
  206. package/dist/schema/validateExistingBlockIsIdentical.d.ts.map +0 -1
  207. package/dist/schema/validateExistingBlockIsIdentical.js +0 -76
  208. package/dist/schema/validateExistingBlockIsIdentical.js.map +0 -1
  209. package/dist/transactions/beginTransaction.d.ts +0 -3
  210. package/dist/transactions/beginTransaction.d.ts.map +0 -1
  211. package/dist/transactions/beginTransaction.js +0 -51
  212. package/dist/transactions/beginTransaction.js.map +0 -1
  213. package/dist/transactions/commitTransaction.d.ts +0 -3
  214. package/dist/transactions/commitTransaction.d.ts.map +0 -1
  215. package/dist/transactions/commitTransaction.js +0 -15
  216. package/dist/transactions/commitTransaction.js.map +0 -1
  217. package/dist/transactions/rollbackTransaction.d.ts +0 -3
  218. package/dist/transactions/rollbackTransaction.d.ts.map +0 -1
  219. package/dist/transactions/rollbackTransaction.js +0 -14
  220. package/dist/transactions/rollbackTransaction.js.map +0 -1
  221. package/dist/transform/read/hasManyNumber.d.ts +0 -10
  222. package/dist/transform/read/hasManyNumber.d.ts.map +0 -1
  223. package/dist/transform/read/hasManyNumber.js +0 -10
  224. package/dist/transform/read/hasManyNumber.js.map +0 -1
  225. package/dist/transform/read/hasManyText.d.ts +0 -10
  226. package/dist/transform/read/hasManyText.d.ts.map +0 -1
  227. package/dist/transform/read/hasManyText.js +0 -10
  228. package/dist/transform/read/hasManyText.js.map +0 -1
  229. package/dist/transform/read/index.d.ts +0 -13
  230. package/dist/transform/read/index.d.ts.map +0 -1
  231. package/dist/transform/read/index.js +0 -44
  232. package/dist/transform/read/index.js.map +0 -1
  233. package/dist/transform/read/relationship.d.ts +0 -10
  234. package/dist/transform/read/relationship.d.ts.map +0 -1
  235. package/dist/transform/read/relationship.js +0 -60
  236. package/dist/transform/read/relationship.js.map +0 -1
  237. package/dist/transform/read/traverseFields.d.ts +0 -57
  238. package/dist/transform/read/traverseFields.d.ts.map +0 -1
  239. package/dist/transform/read/traverseFields.js +0 -435
  240. package/dist/transform/read/traverseFields.js.map +0 -1
  241. package/dist/transform/write/array.d.ts +0 -26
  242. package/dist/transform/write/array.d.ts.map +0 -1
  243. package/dist/transform/write/array.js +0 -58
  244. package/dist/transform/write/array.js.map +0 -1
  245. package/dist/transform/write/blocks.d.ts +0 -25
  246. package/dist/transform/write/blocks.d.ts.map +0 -1
  247. package/dist/transform/write/blocks.js +0 -54
  248. package/dist/transform/write/blocks.js.map +0 -1
  249. package/dist/transform/write/index.d.ts +0 -13
  250. package/dist/transform/write/index.d.ts.map +0 -1
  251. package/dist/transform/write/index.js +0 -41
  252. package/dist/transform/write/index.js.map +0 -1
  253. package/dist/transform/write/numbers.d.ts +0 -8
  254. package/dist/transform/write/numbers.d.ts.map +0 -1
  255. package/dist/transform/write/numbers.js +0 -11
  256. package/dist/transform/write/numbers.js.map +0 -1
  257. package/dist/transform/write/relationships.d.ts +0 -10
  258. package/dist/transform/write/relationships.d.ts.map +0 -1
  259. package/dist/transform/write/relationships.js +0 -23
  260. package/dist/transform/write/relationships.js.map +0 -1
  261. package/dist/transform/write/selects.d.ts +0 -8
  262. package/dist/transform/write/selects.d.ts.map +0 -1
  263. package/dist/transform/write/selects.js +0 -20
  264. package/dist/transform/write/selects.js.map +0 -1
  265. package/dist/transform/write/texts.d.ts +0 -8
  266. package/dist/transform/write/texts.d.ts.map +0 -1
  267. package/dist/transform/write/texts.js +0 -11
  268. package/dist/transform/write/texts.js.map +0 -1
  269. package/dist/transform/write/traverseFields.d.ts +0 -50
  270. package/dist/transform/write/traverseFields.d.ts.map +0 -1
  271. package/dist/transform/write/traverseFields.js +0 -445
  272. package/dist/transform/write/traverseFields.js.map +0 -1
  273. package/dist/transform/write/types.d.ts +0 -43
  274. package/dist/transform/write/types.d.ts.map +0 -1
  275. package/dist/transform/write/types.js +0 -3
  276. package/dist/transform/write/types.js.map +0 -1
  277. package/dist/update.d.ts +0 -3
  278. package/dist/update.d.ts.map +0 -1
  279. package/dist/update.js +0 -54
  280. package/dist/update.js.map +0 -1
  281. package/dist/updateGlobal.d.ts +0 -4
  282. package/dist/updateGlobal.d.ts.map +0 -1
  283. package/dist/updateGlobal.js +0 -25
  284. package/dist/updateGlobal.js.map +0 -1
  285. package/dist/updateGlobalVersion.d.ts +0 -4
  286. package/dist/updateGlobalVersion.d.ts.map +0 -1
  287. package/dist/updateGlobalVersion.js +0 -36
  288. package/dist/updateGlobalVersion.js.map +0 -1
  289. package/dist/updateVersion.d.ts +0 -4
  290. package/dist/updateVersion.d.ts.map +0 -1
  291. package/dist/updateVersion.js +0 -36
  292. package/dist/updateVersion.js.map +0 -1
  293. package/dist/upsertRow/deleteExistingArrayRows.d.ts +0 -10
  294. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +0 -1
  295. package/dist/upsertRow/deleteExistingArrayRows.js +0 -10
  296. package/dist/upsertRow/deleteExistingArrayRows.js.map +0 -1
  297. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +0 -14
  298. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +0 -1
  299. package/dist/upsertRow/deleteExistingRowsByPath.js +0 -33
  300. package/dist/upsertRow/deleteExistingRowsByPath.js.map +0 -1
  301. package/dist/upsertRow/index.d.ts +0 -4
  302. package/dist/upsertRow/index.d.ts.map +0 -1
  303. package/dist/upsertRow/index.js +0 -281
  304. package/dist/upsertRow/index.js.map +0 -1
  305. package/dist/upsertRow/insertArrays.d.ts +0 -13
  306. package/dist/upsertRow/insertArrays.d.ts.map +0 -1
  307. package/dist/upsertRow/insertArrays.js +0 -68
  308. package/dist/upsertRow/insertArrays.js.map +0 -1
  309. package/dist/upsertRow/types.d.ts +0 -32
  310. package/dist/upsertRow/types.d.ts.map +0 -1
  311. package/dist/upsertRow/types.js +0 -3
  312. package/dist/upsertRow/types.js.map +0 -1
  313. package/dist/utilities/appendPrefixToKeys.d.ts +0 -2
  314. package/dist/utilities/appendPrefixToKeys.d.ts.map +0 -1
  315. package/dist/utilities/appendPrefixToKeys.js +0 -6
  316. package/dist/utilities/appendPrefixToKeys.js.map +0 -1
  317. package/dist/utilities/createBlocksMap.d.ts +0 -5
  318. package/dist/utilities/createBlocksMap.d.ts.map +0 -1
  319. package/dist/utilities/createBlocksMap.js +0 -29
  320. package/dist/utilities/createBlocksMap.js.map +0 -1
  321. package/dist/utilities/createMigrationTable.d.ts +0 -3
  322. package/dist/utilities/createMigrationTable.d.ts.map +0 -1
  323. package/dist/utilities/createMigrationTable.js +0 -13
  324. package/dist/utilities/createMigrationTable.js.map +0 -1
  325. package/dist/utilities/createRelationshipMap.d.ts +0 -2
  326. package/dist/utilities/createRelationshipMap.d.ts.map +0 -1
  327. package/dist/utilities/createRelationshipMap.js +0 -19
  328. package/dist/utilities/createRelationshipMap.js.map +0 -1
  329. package/dist/utilities/hasLocalesTable.d.ts +0 -3
  330. package/dist/utilities/hasLocalesTable.d.ts.map +0 -1
  331. package/dist/utilities/hasLocalesTable.js +0 -11
  332. package/dist/utilities/hasLocalesTable.js.map +0 -1
  333. package/dist/utilities/isArrayOfRows.d.ts +0 -2
  334. package/dist/utilities/isArrayOfRows.d.ts.map +0 -1
  335. package/dist/utilities/isArrayOfRows.js +0 -5
  336. package/dist/utilities/isArrayOfRows.js.map +0 -1
  337. package/dist/utilities/migrationTableExists.d.ts +0 -3
  338. package/dist/utilities/migrationTableExists.d.ts.map +0 -1
  339. package/dist/utilities/migrationTableExists.js +0 -9
  340. package/dist/utilities/migrationTableExists.js.map +0 -1
  341. package/dist/utilities/parseError.d.ts +0 -5
  342. package/dist/utilities/parseError.d.ts.map +0 -1
  343. package/dist/utilities/parseError.js +0 -17
  344. package/dist/utilities/parseError.js.map +0 -1
  345. package/dist/utilities/pushDevSchema.d.ts +0 -9
  346. package/dist/utilities/pushDevSchema.d.ts.map +0 -1
  347. package/dist/utilities/pushDevSchema.js +0 -58
  348. package/dist/utilities/pushDevSchema.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/index.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\nimport { groupUpSQLStatements } from './groupUpSQLStatements.js'\nimport { migrateRelationships } from './migrateRelationships.js'\nimport { traverseFields } from './traverseFields.js'\n\nconst require = createRequire(import.meta.url)\n\ntype Args = {\n debug?: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\n/**\n * Moves upload and relationship columns from the join table and into the tables while moving data\n * This is done in the following order:\n * ADD COLUMNs\n * -- manipulate data to move relationships to new columns\n * ADD CONSTRAINTs\n * NOT NULLs\n * DROP TABLEs\n * DROP CONSTRAINTs\n * DROP COLUMNs\n * @param debug\n * @param payload\n * @param req\n */\nexport const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => {\n const adapter = payload.db as PostgresAdapter\n const db = adapter.sessions[await req.transactionID]?.db\n const dir = payload.db.migrationDir\n\n // get the drizzle migrateUpSQL from drizzle using the last schema\n const { generateDrizzleJson, generateMigration } = require('drizzle-kit/payload')\n const drizzleJsonAfter = generateDrizzleJson(adapter.schema)\n\n // Get the previous migration snapshot\n const previousSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json') && !file.endsWith('relationships_v2_v3.json'))\n .sort()\n .reverse()?.[0]\n\n if (!previousSnapshot) {\n throw new Error(\n `No previous migration schema file found! A prior migration from v2 is required to migrate to v3.`,\n )\n }\n\n const drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${previousSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n\n const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n\n if (!generatedSQL.length) {\n payload.logger.info(`No schema changes needed.`)\n process.exit(0)\n }\n\n const sqlUpStatements = groupUpSQLStatements(generatedSQL)\n\n const addColumnsStatement = sqlUpStatements.addColumn.join('\\n')\n\n if (debug) {\n payload.logger.info('CREATING NEW RELATIONSHIP COLUMNS')\n payload.logger.info(addColumnsStatement)\n }\n\n await db.execute(sql.raw(addColumnsStatement))\n\n for (const collection of payload.config.collections) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: collection.fields,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: collection.fields,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(collection)\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: versionFields,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n for (const global of payload.config.globals) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(global.slug))\n\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: global.fields,\n globalSlug: global.slug,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: global.fields,\n globalSlug: global.slug,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (global.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(global.slug)}${adapter.versionsSuffix}`,\n )\n\n const versionFields = buildVersionGlobalFields(global)\n\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n // ADD CONSTRAINT\n const addConstraintsStatement = sqlUpStatements.addConstraint.join('\\n')\n\n if (debug) {\n payload.logger.info('ADDING CONSTRAINTS')\n payload.logger.info(addConstraintsStatement)\n }\n\n await db.execute(sql.raw(addConstraintsStatement))\n\n // NOT NULL\n const notNullStatements = sqlUpStatements.notNull.join('\\n')\n\n if (debug) {\n payload.logger.info('NOT NULL CONSTRAINTS')\n payload.logger.info(notNullStatements)\n }\n\n await db.execute(sql.raw(notNullStatements))\n\n // DROP TABLE\n const dropTablesStatement = sqlUpStatements.dropTable.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING TABLES')\n payload.logger.info(dropTablesStatement)\n }\n\n await db.execute(sql.raw(dropTablesStatement))\n\n // DROP CONSTRAINT\n const dropConstraintsStatement = sqlUpStatements.dropConstraint.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING CONSTRAINTS')\n payload.logger.info(dropConstraintsStatement)\n }\n\n await db.execute(sql.raw(dropConstraintsStatement))\n\n // DROP COLUMN\n const dropColumnsStatement = sqlUpStatements.dropColumn.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING COLUMNS')\n payload.logger.info(dropColumnsStatement)\n }\n\n await db.execute(sql.raw(dropColumnsStatement))\n}\n"],"names":["sql","fs","createRequire","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","groupUpSQLStatements","migrateRelationships","traverseFields","require","url","migratePostgresV2toV3","debug","payload","req","adapter","db","sessions","transactionID","dir","migrationDir","generateDrizzleJson","generateMigration","drizzleJsonAfter","schema","previousSnapshot","readdirSync","filter","file","endsWith","sort","reverse","Error","drizzleJsonBefore","JSON","parse","readFileSync","generatedSQL","length","logger","info","process","exit","sqlUpStatements","addColumnsStatement","addColumn","join","execute","raw","collection","config","collections","tableName","tableNameMap","get","slug","pathsToQuery","Set","collectionSlug","columnPrefix","disableNotNull","fields","isVersions","newTableName","parentTableName","path","rootTableName","versions","versionsTableName","versionsSuffix","versionFields","versionPathsToQuery","global","globals","globalSlug","addConstraintsStatement","addConstraint","notNullStatements","notNull","dropTablesStatement","dropTable","dropConstraintsStatement","dropConstraint","dropColumnsStatement","dropColumn"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/index.ts"],"sourcesContent":["import type { TransactionPg } from '@payloadcms/drizzle/types'\nimport type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\nimport { groupUpSQLStatements } from './groupUpSQLStatements.js'\nimport { migrateRelationships } from './migrateRelationships.js'\nimport { traverseFields } from './traverseFields.js'\n\nconst require = createRequire(import.meta.url)\n\ntype Args = {\n debug?: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\n/**\n * Moves upload and relationship columns from the join table and into the tables while moving data\n * This is done in the following order:\n * ADD COLUMNs\n * -- manipulate data to move relationships to new columns\n * ADD CONSTRAINTs\n * NOT NULLs\n * DROP TABLEs\n * DROP CONSTRAINTs\n * DROP COLUMNs\n * @param debug\n * @param payload\n * @param req\n */\nexport const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => {\n const adapter = payload.db as unknown as PostgresAdapter\n const db = adapter.sessions[await req.transactionID].db as TransactionPg\n const dir = payload.db.migrationDir\n\n // get the drizzle migrateUpSQL from drizzle using the last schema\n const { generateDrizzleJson, generateMigration } = require('drizzle-kit/api')\n const drizzleJsonAfter = generateDrizzleJson(adapter.schema)\n\n // Get the previous migration snapshot\n const previousSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json') && !file.endsWith('relationships_v2_v3.json'))\n .sort()\n .reverse()?.[0]\n\n if (!previousSnapshot) {\n throw new Error(\n `No previous migration schema file found! A prior migration from v2 is required to migrate to v3.`,\n )\n }\n\n const drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${previousSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n\n const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n\n if (!generatedSQL.length) {\n payload.logger.info(`No schema changes needed.`)\n process.exit(0)\n }\n\n const sqlUpStatements = groupUpSQLStatements(generatedSQL)\n\n const addColumnsStatement = sqlUpStatements.addColumn.join('\\n')\n\n if (debug) {\n payload.logger.info('CREATING NEW RELATIONSHIP COLUMNS')\n payload.logger.info(addColumnsStatement)\n }\n\n await db.execute(sql.raw(addColumnsStatement))\n\n for (const collection of payload.config.collections) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: collection.fields,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: collection.fields,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(payload.config, collection)\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: versionFields,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n for (const global of payload.config.globals) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(global.slug))\n\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: global.fields,\n globalSlug: global.slug,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: global.fields,\n globalSlug: global.slug,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (global.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(global.slug)}${adapter.versionsSuffix}`,\n )\n\n const versionFields = buildVersionGlobalFields(payload.config, global)\n\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n // ADD CONSTRAINT\n const addConstraintsStatement = sqlUpStatements.addConstraint.join('\\n')\n\n if (debug) {\n payload.logger.info('ADDING CONSTRAINTS')\n payload.logger.info(addConstraintsStatement)\n }\n\n await db.execute(sql.raw(addConstraintsStatement))\n\n // NOT NULL\n const notNullStatements = sqlUpStatements.notNull.join('\\n')\n\n if (debug) {\n payload.logger.info('NOT NULL CONSTRAINTS')\n payload.logger.info(notNullStatements)\n }\n\n await db.execute(sql.raw(notNullStatements))\n\n // DROP TABLE\n const dropTablesStatement = sqlUpStatements.dropTable.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING TABLES')\n payload.logger.info(dropTablesStatement)\n }\n\n await db.execute(sql.raw(dropTablesStatement))\n\n // DROP CONSTRAINT\n const dropConstraintsStatement = sqlUpStatements.dropConstraint.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING CONSTRAINTS')\n payload.logger.info(dropConstraintsStatement)\n }\n\n await db.execute(sql.raw(dropConstraintsStatement))\n\n // DROP COLUMN\n const dropColumnsStatement = sqlUpStatements.dropColumn.join('\\n')\n\n if (debug) {\n payload.logger.info('DROPPING COLUMNS')\n payload.logger.info(dropColumnsStatement)\n }\n\n await db.execute(sql.raw(dropColumnsStatement))\n}\n"],"names":["sql","fs","createRequire","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","groupUpSQLStatements","migrateRelationships","traverseFields","require","url","migratePostgresV2toV3","debug","payload","req","adapter","db","sessions","transactionID","dir","migrationDir","generateDrizzleJson","generateMigration","drizzleJsonAfter","schema","previousSnapshot","readdirSync","filter","file","endsWith","sort","reverse","Error","drizzleJsonBefore","JSON","parse","readFileSync","generatedSQL","length","logger","info","process","exit","sqlUpStatements","addColumnsStatement","addColumn","join","execute","raw","collection","config","collections","tableName","tableNameMap","get","slug","pathsToQuery","Set","collectionSlug","columnPrefix","disableNotNull","fields","isVersions","newTableName","parentTableName","path","rootTableName","versions","versionsTableName","versionsSuffix","versionFields","versionPathsToQuery","global","globals","globalSlug","addConstraintsStatement","addConstraint","notNullStatements","notNull","dropTablesStatement","dropTable","dropConstraintsStatement","dropConstraint","dropColumnsStatement","dropColumn"],"mappings":"AAIA,SAASA,GAAG,QAAQ,cAAa;AACjC,OAAOC,QAAQ,KAAI;AACnB,SAASC,aAAa,QAAQ,SAAQ;AACtC,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,MAAMC,UAAUP,cAAc,YAAYQ,GAAG;AAQ7C;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAMC,wBAAwB,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAEC,GAAG,EAAQ;IACvE,MAAMC,UAAUF,QAAQG,EAAE;IAC1B,MAAMA,KAAKD,QAAQE,QAAQ,CAAC,MAAMH,IAAII,aAAa,CAAC,CAACF,EAAE;IACvD,MAAMG,MAAMN,QAAQG,EAAE,CAACI,YAAY;IAEnC,kEAAkE;IAClE,MAAM,EAAEC,mBAAmB,EAAEC,iBAAiB,EAAE,GAAGb,QAAQ;IAC3D,MAAMc,mBAAmBF,oBAAoBN,QAAQS,MAAM;IAE3D,sCAAsC;IACtC,MAAMC,mBAAmBxB,GACtByB,WAAW,CAACP,KACZQ,MAAM,CAAC,CAACC,OAASA,KAAKC,QAAQ,CAAC,YAAY,CAACD,KAAKC,QAAQ,CAAC,6BAC1DC,IAAI,GACJC,OAAO,IAAI,CAAC,EAAE;IAEjB,IAAI,CAACN,kBAAkB;QACrB,MAAM,IAAIO,MACR,CAAC,gGAAgG,CAAC;IAEtG;IAEA,MAAMC,oBAAoBC,KAAKC,KAAK,CAClClC,GAAGmC,YAAY,CAAC,CAAC,EAAEjB,IAAI,CAAC,EAAEM,iBAAiB,CAAC,EAAE;IAGhD,MAAMY,eAAe,MAAMf,kBAAkBW,mBAAmBV;IAEhE,IAAI,CAACc,aAAaC,MAAM,EAAE;QACxBzB,QAAQ0B,MAAM,CAACC,IAAI,CAAC,CAAC,yBAAyB,CAAC;QAC/CC,QAAQC,IAAI,CAAC;IACf;IAEA,MAAMC,kBAAkBrC,qBAAqB+B;IAE7C,MAAMO,sBAAsBD,gBAAgBE,SAAS,CAACC,IAAI,CAAC;IAE3D,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACI;IACtB;IAEA,MAAM5B,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAACJ;IAEzB,KAAK,MAAMK,cAAcpC,QAAQqC,MAAM,CAACC,WAAW,CAAE;QACnD,MAAMC,YAAYrC,QAAQsC,YAAY,CAACC,GAAG,CAACjD,YAAY4C,WAAWM,IAAI;QACtE,MAAMC,eAA6B,IAAIC;QAEvCjD,eAAe;YACbO;YACA2C,gBAAgBT,WAAWM,IAAI;YAC/BI,cAAc;YACd3C;YACA4C,gBAAgB;YAChBC,QAAQZ,WAAWY,MAAM;YACzBC,YAAY;YACZC,cAAcX;YACdY,iBAAiBZ;YACjBa,MAAM;YACNT;YACA3C;YACAqD,eAAed;QACjB;QAEA,MAAM7C,qBAAqB;YACzBQ;YACA2C,gBAAgBT,WAAWM,IAAI;YAC/BvC;YACAJ;YACAiD,QAAQZ,WAAWY,MAAM;YACzBC,YAAY;YACZN;YACA3C;YACAC;YACAsC;QACF;QAEA,IAAIH,WAAWkB,QAAQ,EAAE;YACvB,MAAMC,oBAAoBrD,QAAQsC,YAAY,CAACC,GAAG,CAChD,CAAC,CAAC,EAAEjD,YAAY4C,WAAWM,IAAI,EAAE,EAAExC,QAAQsD,cAAc,CAAC,CAAC;YAE7D,MAAMC,gBAAgBnE,6BAA6BU,QAAQqC,MAAM,EAAED;YACnE,MAAMsB,sBAAoC,IAAId;YAE9CjD,eAAe;gBACbO;gBACA2C,gBAAgBT,WAAWM,IAAI;gBAC/BI,cAAc;gBACd3C;gBACA4C,gBAAgB;gBAChBC,QAAQS;gBACRR,YAAY;gBACZC,cAAcK;gBACdJ,iBAAiBI;gBACjBH,MAAM;gBACNT,cAAce;gBACd1D;gBACAqD,eAAeE;YACjB;YAEA,MAAM7D,qBAAqB;gBACzBQ;gBACA2C,gBAAgBT,WAAWM,IAAI;gBAC/BvC;gBACAJ;gBACAiD,QAAQS;gBACRR,YAAY;gBACZN,cAAce;gBACd1D;gBACAC;gBACAsC,WAAWgB;YACb;QACF;IACF;IAEA,KAAK,MAAMI,UAAU3D,QAAQqC,MAAM,CAACuB,OAAO,CAAE;QAC3C,MAAMrB,YAAYrC,QAAQsC,YAAY,CAACC,GAAG,CAACjD,YAAYmE,OAAOjB,IAAI;QAElE,MAAMC,eAA6B,IAAIC;QAEvCjD,eAAe;YACbO;YACA4C,cAAc;YACd3C;YACA4C,gBAAgB;YAChBC,QAAQW,OAAOX,MAAM;YACrBa,YAAYF,OAAOjB,IAAI;YACvBO,YAAY;YACZC,cAAcX;YACdY,iBAAiBZ;YACjBa,MAAM;YACNT;YACA3C;YACAqD,eAAed;QACjB;QAEA,MAAM7C,qBAAqB;YACzBQ;YACAC;YACAJ;YACAiD,QAAQW,OAAOX,MAAM;YACrBa,YAAYF,OAAOjB,IAAI;YACvBO,YAAY;YACZN;YACA3C;YACAC;YACAsC;QACF;QAEA,IAAIoB,OAAOL,QAAQ,EAAE;YACnB,MAAMC,oBAAoBrD,QAAQsC,YAAY,CAACC,GAAG,CAChD,CAAC,CAAC,EAAEjD,YAAYmE,OAAOjB,IAAI,EAAE,EAAExC,QAAQsD,cAAc,CAAC,CAAC;YAGzD,MAAMC,gBAAgBlE,yBAAyBS,QAAQqC,MAAM,EAAEsB;YAE/D,MAAMD,sBAAoC,IAAId;YAE9CjD,eAAe;gBACbO;gBACA4C,cAAc;gBACd3C;gBACA4C,gBAAgB;gBAChBC,QAAQS;gBACRI,YAAYF,OAAOjB,IAAI;gBACvBO,YAAY;gBACZC,cAAcK;gBACdJ,iBAAiBI;gBACjBH,MAAM;gBACNT,cAAce;gBACd1D;gBACAqD,eAAeE;YACjB;YAEA,MAAM7D,qBAAqB;gBACzBQ;gBACAC;gBACAJ;gBACAiD,QAAQS;gBACRI,YAAYF,OAAOjB,IAAI;gBACvBO,YAAY;gBACZN,cAAce;gBACd1D;gBACAC;gBACAsC,WAAWgB;YACb;QACF;IACF;IAEA,iBAAiB;IACjB,MAAMO,0BAA0BhC,gBAAgBiC,aAAa,CAAC9B,IAAI,CAAC;IAEnE,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACmC;IACtB;IAEA,MAAM3D,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAAC2B;IAEzB,WAAW;IACX,MAAME,oBAAoBlC,gBAAgBmC,OAAO,CAAChC,IAAI,CAAC;IAEvD,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACqC;IACtB;IAEA,MAAM7D,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAAC6B;IAEzB,aAAa;IACb,MAAME,sBAAsBpC,gBAAgBqC,SAAS,CAAClC,IAAI,CAAC;IAE3D,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACuC;IACtB;IAEA,MAAM/D,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAAC+B;IAEzB,kBAAkB;IAClB,MAAME,2BAA2BtC,gBAAgBuC,cAAc,CAACpC,IAAI,CAAC;IAErE,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACyC;IACtB;IAEA,MAAMjE,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAACiC;IAEzB,cAAc;IACd,MAAME,uBAAuBxC,gBAAgByC,UAAU,CAACtC,IAAI,CAAC;IAE7D,IAAIlC,OAAO;QACTC,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAAC2C;IACtB;IAEA,MAAMnE,GAAG+B,OAAO,CAAC/C,IAAIgD,GAAG,CAACmC;AAC3B,EAAC"}
@@ -1,10 +1,11 @@
1
+ import type { TransactionPg } from '@payloadcms/drizzle/types';
1
2
  import type { Field, Payload, PayloadRequest } from 'payload';
2
- import type { DrizzleTransaction, PostgresAdapter } from '../../types.js';
3
+ import type { PostgresAdapter } from '../../types.js';
3
4
  import type { PathsToQuery } from './types.js';
4
5
  type Args = {
5
6
  adapter: PostgresAdapter;
6
7
  collectionSlug?: string;
7
- db: DrizzleTransaction;
8
+ db: TransactionPg;
8
9
  debug: boolean;
9
10
  fields: Field[];
10
11
  globalSlug?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"migrateRelationships.d.ts","sourceRoot":"","sources":["../../../src/predefinedMigrations/v2-v3/migrateRelationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAA;AAI5D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,kBAAkB,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,oBAAoB,mHAY9B,IAAI,kBAkEN,CAAA"}
1
+ {"version":3,"file":"migrateRelationships.d.ts","sourceRoot":"","sources":["../../../src/predefinedMigrations/v2-v3/migrateRelationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAA;AAI5D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,aAAa,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,oBAAoB,mHAY9B,IAAI,kBAwEN,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { sql } from 'drizzle-orm';
2
2
  import { fetchAndResave } from './fetchAndResave/index.js';
3
3
  export const migrateRelationships = async ({ adapter, collectionSlug, db, debug, fields, globalSlug, isVersions, pathsToQuery, payload, req, tableName })=>{
4
- if (pathsToQuery.size === 0) return;
4
+ if (pathsToQuery.size === 0) {
5
+ return;
6
+ }
5
7
  let offset = 0;
6
8
  let paginationResult;
7
9
  const where = Array.from(pathsToQuery).reduce((statement, path, i)=>{
@@ -14,7 +16,9 @@ export const migrateRelationships = async ({ adapter, collectionSlug, db, debug,
14
16
  ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};
15
17
  `;
16
18
  paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`));
17
- if (paginationResult.rows.length === 0) return;
19
+ if (paginationResult.rows.length === 0) {
20
+ return;
21
+ }
18
22
  offset += 1;
19
23
  const statement = `SELECT * FROM ${tableName}${adapter.relationshipsSuffix} WHERE
20
24
  (${where}) AND parent_id IN (${paginationResult.rows.map((row)=>row.parent_id).join(', ')});
@@ -28,7 +32,9 @@ export const migrateRelationships = async ({ adapter, collectionSlug, db, debug,
28
32
  result.rows.forEach((row)=>{
29
33
  const parentID = row.parent_id;
30
34
  if (typeof parentID === 'string' || typeof parentID === 'number') {
31
- if (!docsToResave[parentID]) docsToResave[parentID] = [];
35
+ if (!docsToResave[parentID]) {
36
+ docsToResave[parentID] = [];
37
+ }
32
38
  docsToResave[parentID].push(row);
33
39
  }
34
40
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/migrateRelationships.ts"],"sourcesContent":["import type { Field, Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { DrizzleTransaction, PostgresAdapter } from '../../types.js'\nimport type { DocsToResave, PathsToQuery } from './types.js'\n\nimport { fetchAndResave } from './fetchAndResave/index.js'\n\ntype Args = {\n adapter: PostgresAdapter\n collectionSlug?: string\n db: DrizzleTransaction\n debug: boolean\n fields: Field[]\n globalSlug?: string\n isVersions: boolean\n pathsToQuery: PathsToQuery\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const migrateRelationships = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n fields,\n globalSlug,\n isVersions,\n pathsToQuery,\n payload,\n req,\n tableName,\n}: Args) => {\n if (pathsToQuery.size === 0) return\n\n let offset = 0\n\n let paginationResult\n\n const where = Array.from(pathsToQuery).reduce((statement, path, i) => {\n return (statement += `\n\"${tableName}${adapter.relationshipsSuffix}\".\"path\" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}\n`)\n }, '')\n\n while (typeof paginationResult === 'undefined' || paginationResult.rows.length > 0) {\n const paginationStatement = `SELECT DISTINCT parent_id FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};\n `\n\n paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`))\n\n if (paginationResult.rows.length === 0) return\n\n offset += 1\n\n const statement = `SELECT * FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n (${where}) AND parent_id IN (${paginationResult.rows.map((row) => row.parent_id).join(', ')});\n`\n if (debug) {\n payload.logger.info('FINDING ROWS TO MIGRATE')\n payload.logger.info(statement)\n }\n\n const result = await adapter.drizzle.execute(sql.raw(`${statement}`))\n\n const docsToResave: DocsToResave = {}\n\n result.rows.forEach((row) => {\n const parentID = row.parent_id\n\n if (typeof parentID === 'string' || typeof parentID === 'number') {\n if (!docsToResave[parentID]) docsToResave[parentID] = []\n docsToResave[parentID].push(row)\n }\n })\n\n await fetchAndResave({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req: req as unknown as PayloadRequest,\n tableName,\n })\n }\n\n const deleteStatement = `DELETE FROM ${tableName}${adapter.relationshipsSuffix} WHERE ${where}`\n if (debug) {\n payload.logger.info('DELETING ROWS')\n payload.logger.info(deleteStatement)\n }\n await db.execute(sql.raw(`${deleteStatement}`))\n}\n"],"names":["sql","fetchAndResave","migrateRelationships","adapter","collectionSlug","db","debug","fields","globalSlug","isVersions","pathsToQuery","payload","req","tableName","size","offset","paginationResult","where","Array","from","reduce","statement","path","i","relationshipsSuffix","rows","length","paginationStatement","drizzle","execute","raw","map","row","parent_id","join","logger","info","result","docsToResave","forEach","parentID","push","deleteStatement"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AAKjC,SAASC,cAAc,QAAQ,4BAA2B;AAgB1D,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,OAAO,EACPC,cAAc,EACdC,EAAE,EACFC,KAAK,EACLC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,GAAG,EACHC,SAAS,EACJ;IACL,IAAIH,aAAaI,IAAI,KAAK,GAAG;IAE7B,IAAIC,SAAS;IAEb,IAAIC;IAEJ,MAAMC,QAAQC,MAAMC,IAAI,CAACT,cAAcU,MAAM,CAAC,CAACC,WAAWC,MAAMC;QAC9D,OAAQF,aAAa,CAAC;CACzB,EAAER,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC,eAAe,EAAEF,KAAK,CAAC,EAAEZ,aAAaI,IAAI,KAAKS,IAAI,IAAI,QAAQ,GAAG;AAC7G,CAAC;IACC,GAAG;IAEH,MAAO,OAAOP,qBAAqB,eAAeA,iBAAiBS,IAAI,CAACC,MAAM,GAAG,EAAG;QAClF,MAAMC,sBAAsB,CAAC,+BAA+B,EAAEd,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC;IACtG,EAAEP,MAAM,qCAAqC,EAAEF,SAAS,IAAI;EAC9D,CAAC;QAECC,mBAAmB,MAAMb,QAAQyB,OAAO,CAACC,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAEH,oBAAoB,CAAC;QAEjF,IAAIX,iBAAiBS,IAAI,CAACC,MAAM,KAAK,GAAG;QAExCX,UAAU;QAEV,MAAMM,YAAY,CAAC,cAAc,EAAER,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC;KAC1E,EAAEP,MAAM,oBAAoB,EAAED,iBAAiBS,IAAI,CAACM,GAAG,CAAC,CAACC,MAAQA,IAAIC,SAAS,EAAEC,IAAI,CAAC,MAAM;AAChG,CAAC;QACG,IAAI5B,OAAO;YACTK,QAAQwB,MAAM,CAACC,IAAI,CAAC;YACpBzB,QAAQwB,MAAM,CAACC,IAAI,CAACf;QACtB;QAEA,MAAMgB,SAAS,MAAMlC,QAAQyB,OAAO,CAACC,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC;QAEnE,MAAMiB,eAA6B,CAAC;QAEpCD,OAAOZ,IAAI,CAACc,OAAO,CAAC,CAACP;YACnB,MAAMQ,WAAWR,IAAIC,SAAS;YAE9B,IAAI,OAAOO,aAAa,YAAY,OAAOA,aAAa,UAAU;gBAChE,IAAI,CAACF,YAAY,CAACE,SAAS,EAAEF,YAAY,CAACE,SAAS,GAAG,EAAE;gBACxDF,YAAY,CAACE,SAAS,CAACC,IAAI,CAACT;YAC9B;QACF;QAEA,MAAM/B,eAAe;YACnBE;YACAC;YACAC;YACAC;YACAgC;YACA/B;YACAC;YACAC;YACAE;YACAC,KAAKA;YACLC;QACF;IACF;IAEA,MAAM6B,kBAAkB,CAAC,YAAY,EAAE7B,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC,OAAO,EAAEP,MAAM,CAAC;IAC/F,IAAIX,OAAO;QACTK,QAAQwB,MAAM,CAACC,IAAI,CAAC;QACpBzB,QAAQwB,MAAM,CAACC,IAAI,CAACM;IACtB;IACA,MAAMrC,GAAGwB,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAEY,gBAAgB,CAAC;AAC/C,EAAC"}
1
+ {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/migrateRelationships.ts"],"sourcesContent":["import type { TransactionPg } from '@payloadcms/drizzle/types'\nimport type { Field, Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { PostgresAdapter } from '../../types.js'\nimport type { DocsToResave, PathsToQuery } from './types.js'\n\nimport { fetchAndResave } from './fetchAndResave/index.js'\n\ntype Args = {\n adapter: PostgresAdapter\n collectionSlug?: string\n db: TransactionPg\n debug: boolean\n fields: Field[]\n globalSlug?: string\n isVersions: boolean\n pathsToQuery: PathsToQuery\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const migrateRelationships = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n fields,\n globalSlug,\n isVersions,\n pathsToQuery,\n payload,\n req,\n tableName,\n}: Args) => {\n if (pathsToQuery.size === 0) {\n return\n }\n\n let offset = 0\n\n let paginationResult\n\n const where = Array.from(pathsToQuery).reduce((statement, path, i) => {\n return (statement += `\n\"${tableName}${adapter.relationshipsSuffix}\".\"path\" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}\n`)\n }, '')\n\n while (typeof paginationResult === 'undefined' || paginationResult.rows.length > 0) {\n const paginationStatement = `SELECT DISTINCT parent_id FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};\n `\n\n paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`))\n\n if (paginationResult.rows.length === 0) {\n return\n }\n\n offset += 1\n\n const statement = `SELECT * FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n (${where}) AND parent_id IN (${paginationResult.rows.map((row) => row.parent_id).join(', ')});\n`\n if (debug) {\n payload.logger.info('FINDING ROWS TO MIGRATE')\n payload.logger.info(statement)\n }\n\n const result = await adapter.drizzle.execute(sql.raw(`${statement}`))\n\n const docsToResave: DocsToResave = {}\n\n result.rows.forEach((row) => {\n const parentID = row.parent_id\n\n if (typeof parentID === 'string' || typeof parentID === 'number') {\n if (!docsToResave[parentID]) {\n docsToResave[parentID] = []\n }\n docsToResave[parentID].push(row)\n }\n })\n\n await fetchAndResave({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req: req as unknown as PayloadRequest,\n tableName,\n })\n }\n\n const deleteStatement = `DELETE FROM ${tableName}${adapter.relationshipsSuffix} WHERE ${where}`\n if (debug) {\n payload.logger.info('DELETING ROWS')\n payload.logger.info(deleteStatement)\n }\n await db.execute(sql.raw(`${deleteStatement}`))\n}\n"],"names":["sql","fetchAndResave","migrateRelationships","adapter","collectionSlug","db","debug","fields","globalSlug","isVersions","pathsToQuery","payload","req","tableName","size","offset","paginationResult","where","Array","from","reduce","statement","path","i","relationshipsSuffix","rows","length","paginationStatement","drizzle","execute","raw","map","row","parent_id","join","logger","info","result","docsToResave","forEach","parentID","push","deleteStatement"],"mappings":"AAGA,SAASA,GAAG,QAAQ,cAAa;AAKjC,SAASC,cAAc,QAAQ,4BAA2B;AAgB1D,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,OAAO,EACPC,cAAc,EACdC,EAAE,EACFC,KAAK,EACLC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,GAAG,EACHC,SAAS,EACJ;IACL,IAAIH,aAAaI,IAAI,KAAK,GAAG;QAC3B;IACF;IAEA,IAAIC,SAAS;IAEb,IAAIC;IAEJ,MAAMC,QAAQC,MAAMC,IAAI,CAACT,cAAcU,MAAM,CAAC,CAACC,WAAWC,MAAMC;QAC9D,OAAQF,aAAa,CAAC;CACzB,EAAER,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC,eAAe,EAAEF,KAAK,CAAC,EAAEZ,aAAaI,IAAI,KAAKS,IAAI,IAAI,QAAQ,GAAG;AAC7G,CAAC;IACC,GAAG;IAEH,MAAO,OAAOP,qBAAqB,eAAeA,iBAAiBS,IAAI,CAACC,MAAM,GAAG,EAAG;QAClF,MAAMC,sBAAsB,CAAC,+BAA+B,EAAEd,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC;IACtG,EAAEP,MAAM,qCAAqC,EAAEF,SAAS,IAAI;EAC9D,CAAC;QAECC,mBAAmB,MAAMb,QAAQyB,OAAO,CAACC,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAEH,oBAAoB,CAAC;QAEjF,IAAIX,iBAAiBS,IAAI,CAACC,MAAM,KAAK,GAAG;YACtC;QACF;QAEAX,UAAU;QAEV,MAAMM,YAAY,CAAC,cAAc,EAAER,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC;KAC1E,EAAEP,MAAM,oBAAoB,EAAED,iBAAiBS,IAAI,CAACM,GAAG,CAAC,CAACC,MAAQA,IAAIC,SAAS,EAAEC,IAAI,CAAC,MAAM;AAChG,CAAC;QACG,IAAI5B,OAAO;YACTK,QAAQwB,MAAM,CAACC,IAAI,CAAC;YACpBzB,QAAQwB,MAAM,CAACC,IAAI,CAACf;QACtB;QAEA,MAAMgB,SAAS,MAAMlC,QAAQyB,OAAO,CAACC,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC;QAEnE,MAAMiB,eAA6B,CAAC;QAEpCD,OAAOZ,IAAI,CAACc,OAAO,CAAC,CAACP;YACnB,MAAMQ,WAAWR,IAAIC,SAAS;YAE9B,IAAI,OAAOO,aAAa,YAAY,OAAOA,aAAa,UAAU;gBAChE,IAAI,CAACF,YAAY,CAACE,SAAS,EAAE;oBAC3BF,YAAY,CAACE,SAAS,GAAG,EAAE;gBAC7B;gBACAF,YAAY,CAACE,SAAS,CAACC,IAAI,CAACT;YAC9B;QACF;QAEA,MAAM/B,eAAe;YACnBE;YACAC;YACAC;YACAC;YACAgC;YACA/B;YACAC;YACAC;YACAE;YACAC,KAAKA;YACLC;QACF;IACF;IAEA,MAAM6B,kBAAkB,CAAC,YAAY,EAAE7B,UAAU,EAAEV,QAAQqB,mBAAmB,CAAC,OAAO,EAAEP,MAAM,CAAC;IAC/F,IAAIX,OAAO;QACTK,QAAQwB,MAAM,CAACC,IAAI,CAAC;QACpBzB,QAAQwB,MAAM,CAACC,IAAI,CAACM;IACtB;IACA,MAAMrC,GAAGwB,OAAO,CAAC7B,IAAI8B,GAAG,CAAC,CAAC,EAAEY,gBAAgB,CAAC;AAC/C,EAAC"}
@@ -1,11 +1,12 @@
1
+ import type { TransactionPg } from '@payloadcms/drizzle/types';
1
2
  import type { Field, Payload } from 'payload';
2
- import type { DrizzleTransaction, PostgresAdapter } from '../../types.js';
3
+ import type { PostgresAdapter } from '../../types.js';
3
4
  import type { PathsToQuery } from './types.js';
4
5
  type Args = {
5
6
  adapter: PostgresAdapter;
6
7
  collectionSlug?: string;
7
8
  columnPrefix: string;
8
- db: DrizzleTransaction;
9
+ db: TransactionPg;
9
10
  disableNotNull: boolean;
10
11
  fields: Field[];
11
12
  globalSlug?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/predefinedMigrations/v2-v3/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAK7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,EAAE,EAAE,kBAAkB,CAAA;IACtB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,IAAI,SA0FxC,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/predefinedMigrations/v2-v3/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAK7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,EAAE,EAAE,aAAa,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,IAAI,SA0FxC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/traverseFields.ts"],"sourcesContent":["import type { Field, Payload } from 'payload'\n\nimport { tabHasName } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleTransaction, PostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\ntype Args = {\n adapter: PostgresAdapter\n collectionSlug?: string\n columnPrefix: string\n db: DrizzleTransaction\n disableNotNull: boolean\n fields: Field[]\n globalSlug?: string\n isVersions: boolean\n newTableName: string\n parentTableName: string\n path: string\n pathsToQuery: PathsToQuery\n payload: Payload\n rootTableName: string\n}\n\nexport const traverseFields = (args: Args) => {\n args.fields.forEach((field) => {\n switch (field.type) {\n case 'group': {\n let newTableName = `${args.newTableName}_${toSnakeCase(field.name)}`\n\n if (field.localized && args.payload.config.localization) {\n newTableName += args.adapter.localesSuffix\n }\n\n return traverseFields({\n ...args,\n columnPrefix: `${args.columnPrefix}${toSnakeCase(field.name)}_`,\n fields: field.fields,\n newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}`,\n })\n }\n\n case 'row':\n case 'collapsible': {\n return traverseFields({\n ...args,\n fields: field.fields,\n })\n }\n\n case 'array': {\n const newTableName = args.adapter.tableNameMap.get(\n `${args.newTableName}_${toSnakeCase(field.name)}`,\n )\n\n return traverseFields({\n ...args,\n columnPrefix: '',\n fields: field.fields,\n newTableName,\n parentTableName: newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}.%`,\n })\n }\n\n case 'blocks': {\n return field.blocks.forEach((block) => {\n const newTableName = args.adapter.tableNameMap.get(\n `${args.rootTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n traverseFields({\n ...args,\n columnPrefix: '',\n fields: block.fields,\n newTableName,\n parentTableName: newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}.%`,\n })\n })\n }\n\n case 'tabs': {\n return field.tabs.forEach((tab) => {\n if (tabHasName(tab)) {\n args.columnPrefix = `${args.columnPrefix}_${toSnakeCase(tab.name)}_`\n args.path = `${args.path ? `${args.path}.` : ''}${tab.name}`\n args.newTableName = `${args.newTableName}_${toSnakeCase(tab.name)}`\n\n if (tab.localized && args.payload.config.localization) {\n args.newTableName += args.adapter.localesSuffix\n }\n }\n\n traverseFields({\n ...args,\n fields: tab.fields,\n })\n })\n }\n\n case 'relationship':\n case 'upload': {\n if (typeof field.relationTo === 'string') {\n if (field.type === 'upload' || !field.hasMany) {\n args.pathsToQuery.add(`${args.path ? `${args.path}.` : ''}${field.name}`)\n }\n }\n\n return null\n }\n }\n })\n}\n"],"names":["tabHasName","toSnakeCase","traverseFields","args","fields","forEach","field","type","newTableName","name","localized","payload","config","localization","adapter","localesSuffix","columnPrefix","path","tableNameMap","get","parentTableName","blocks","block","rootTableName","slug","tabs","tab","relationTo","hasMany","pathsToQuery","add"],"mappings":"AAEA,SAASA,UAAU,QAAQ,iBAAgB;AAC3C,OAAOC,iBAAiB,gBAAe;AAsBvC,OAAO,MAAMC,iBAAiB,CAACC;IAC7BA,KAAKC,MAAM,CAACC,OAAO,CAAC,CAACC;QACnB,OAAQA,MAAMC,IAAI;YAChB,KAAK;gBAAS;oBACZ,IAAIC,eAAe,CAAC,EAAEL,KAAKK,YAAY,CAAC,CAAC,EAAEP,YAAYK,MAAMG,IAAI,EAAE,CAAC;oBAEpE,IAAIH,MAAMI,SAAS,IAAIP,KAAKQ,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;wBACvDL,gBAAgBL,KAAKW,OAAO,CAACC,aAAa;oBAC5C;oBAEA,OAAOb,eAAe;wBACpB,GAAGC,IAAI;wBACPa,cAAc,CAAC,EAAEb,KAAKa,YAAY,CAAC,EAAEf,YAAYK,MAAMG,IAAI,EAAE,CAAC,CAAC;wBAC/DL,QAAQE,MAAMF,MAAM;wBACpBI;wBACAS,MAAM,CAAC,EAAEd,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEX,MAAMG,IAAI,CAAC,CAAC;oBAC1D;gBACF;YAEA,KAAK;YACL,KAAK;gBAAe;oBAClB,OAAOP,eAAe;wBACpB,GAAGC,IAAI;wBACPC,QAAQE,MAAMF,MAAM;oBACtB;gBACF;YAEA,KAAK;gBAAS;oBACZ,MAAMI,eAAeL,KAAKW,OAAO,CAACI,YAAY,CAACC,GAAG,CAChD,CAAC,EAAEhB,KAAKK,YAAY,CAAC,CAAC,EAAEP,YAAYK,MAAMG,IAAI,EAAE,CAAC;oBAGnD,OAAOP,eAAe;wBACpB,GAAGC,IAAI;wBACPa,cAAc;wBACdZ,QAAQE,MAAMF,MAAM;wBACpBI;wBACAY,iBAAiBZ;wBACjBS,MAAM,CAAC,EAAEd,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEX,MAAMG,IAAI,CAAC,EAAE,CAAC;oBAC5D;gBACF;YAEA,KAAK;gBAAU;oBACb,OAAOH,MAAMe,MAAM,CAAChB,OAAO,CAAC,CAACiB;wBAC3B,MAAMd,eAAeL,KAAKW,OAAO,CAACI,YAAY,CAACC,GAAG,CAChD,CAAC,EAAEhB,KAAKoB,aAAa,CAAC,QAAQ,EAAEtB,YAAYqB,MAAME,IAAI,EAAE,CAAC;wBAG3DtB,eAAe;4BACb,GAAGC,IAAI;4BACPa,cAAc;4BACdZ,QAAQkB,MAAMlB,MAAM;4BACpBI;4BACAY,iBAAiBZ;4BACjBS,MAAM,CAAC,EAAEd,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEX,MAAMG,IAAI,CAAC,EAAE,CAAC;wBAC5D;oBACF;gBACF;YAEA,KAAK;gBAAQ;oBACX,OAAOH,MAAMmB,IAAI,CAACpB,OAAO,CAAC,CAACqB;wBACzB,IAAI1B,WAAW0B,MAAM;4BACnBvB,KAAKa,YAAY,GAAG,CAAC,EAAEb,KAAKa,YAAY,CAAC,CAAC,EAAEf,YAAYyB,IAAIjB,IAAI,EAAE,CAAC,CAAC;4BACpEN,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAES,IAAIjB,IAAI,CAAC,CAAC;4BAC5DN,KAAKK,YAAY,GAAG,CAAC,EAAEL,KAAKK,YAAY,CAAC,CAAC,EAAEP,YAAYyB,IAAIjB,IAAI,EAAE,CAAC;4BAEnE,IAAIiB,IAAIhB,SAAS,IAAIP,KAAKQ,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;gCACrDV,KAAKK,YAAY,IAAIL,KAAKW,OAAO,CAACC,aAAa;4BACjD;wBACF;wBAEAb,eAAe;4BACb,GAAGC,IAAI;4BACPC,QAAQsB,IAAItB,MAAM;wBACpB;oBACF;gBACF;YAEA,KAAK;YACL,KAAK;gBAAU;oBACb,IAAI,OAAOE,MAAMqB,UAAU,KAAK,UAAU;wBACxC,IAAIrB,MAAMC,IAAI,KAAK,YAAY,CAACD,MAAMsB,OAAO,EAAE;4BAC7CzB,KAAK0B,YAAY,CAACC,GAAG,CAAC,CAAC,EAAE3B,KAAKc,IAAI,GAAG,CAAC,EAAEd,KAAKc,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEX,MAAMG,IAAI,CAAC,CAAC;wBAC1E;oBACF;oBAEA,OAAO;gBACT;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/predefinedMigrations/v2-v3/traverseFields.ts"],"sourcesContent":["import type { TransactionPg } from '@payloadcms/drizzle/types'\nimport type { Field, Payload } from 'payload'\n\nimport { tabHasName } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\ntype Args = {\n adapter: PostgresAdapter\n collectionSlug?: string\n columnPrefix: string\n db: TransactionPg\n disableNotNull: boolean\n fields: Field[]\n globalSlug?: string\n isVersions: boolean\n newTableName: string\n parentTableName: string\n path: string\n pathsToQuery: PathsToQuery\n payload: Payload\n rootTableName: string\n}\n\nexport const traverseFields = (args: Args) => {\n args.fields.forEach((field) => {\n switch (field.type) {\n case 'group': {\n let newTableName = `${args.newTableName}_${toSnakeCase(field.name)}`\n\n if (field.localized && args.payload.config.localization) {\n newTableName += args.adapter.localesSuffix\n }\n\n return traverseFields({\n ...args,\n columnPrefix: `${args.columnPrefix}${toSnakeCase(field.name)}_`,\n fields: field.fields,\n newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}`,\n })\n }\n\n case 'row':\n case 'collapsible': {\n return traverseFields({\n ...args,\n fields: field.fields,\n })\n }\n\n case 'array': {\n const newTableName = args.adapter.tableNameMap.get(\n `${args.newTableName}_${toSnakeCase(field.name)}`,\n )\n\n return traverseFields({\n ...args,\n columnPrefix: '',\n fields: field.fields,\n newTableName,\n parentTableName: newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}.%`,\n })\n }\n\n case 'blocks': {\n return field.blocks.forEach((block) => {\n const newTableName = args.adapter.tableNameMap.get(\n `${args.rootTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n traverseFields({\n ...args,\n columnPrefix: '',\n fields: block.fields,\n newTableName,\n parentTableName: newTableName,\n path: `${args.path ? `${args.path}.` : ''}${field.name}.%`,\n })\n })\n }\n\n case 'tabs': {\n return field.tabs.forEach((tab) => {\n if (tabHasName(tab)) {\n args.columnPrefix = `${args.columnPrefix}_${toSnakeCase(tab.name)}_`\n args.path = `${args.path ? `${args.path}.` : ''}${tab.name}`\n args.newTableName = `${args.newTableName}_${toSnakeCase(tab.name)}`\n\n if (tab.localized && args.payload.config.localization) {\n args.newTableName += args.adapter.localesSuffix\n }\n }\n\n traverseFields({\n ...args,\n fields: tab.fields,\n })\n })\n }\n\n case 'relationship':\n case 'upload': {\n if (typeof field.relationTo === 'string') {\n if (field.type === 'upload' || !field.hasMany) {\n args.pathsToQuery.add(`${args.path ? `${args.path}.` : ''}${field.name}`)\n }\n }\n\n return null\n }\n }\n })\n}\n"],"names":["tabHasName","toSnakeCase","traverseFields","args","fields","forEach","field","type","newTableName","name","localized","payload","config","localization","adapter","localesSuffix","columnPrefix","path","tableNameMap","get","parentTableName","blocks","block","rootTableName","slug","tabs","tab","relationTo","hasMany","pathsToQuery","add"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,100 +1,87 @@
1
- import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations } from 'drizzle-orm';
2
- import type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres';
3
- import type { PgColumn, PgEnum, PgSchema, PgTableWithColumns, PgTransaction } from 'drizzle-orm/pg-core';
4
- import type { PgTableFn } from 'drizzle-orm/pg-core/table';
5
- import type { BaseDatabaseAdapter, Payload, PayloadRequest } from 'payload';
1
+ import type { BasePostgresAdapter, GenericEnum, MigrateDownArgs, MigrateUpArgs, PostgresDB, PostgresSchemaHook } from '@payloadcms/drizzle/postgres';
2
+ import type { DrizzleAdapter } from '@payloadcms/drizzle/types';
3
+ import type { DrizzleConfig } from 'drizzle-orm';
4
+ import type { PgSchema, PgTableFn, PgTransactionConfig } from 'drizzle-orm/pg-core';
6
5
  import type { Pool, PoolConfig } from 'pg';
7
- export type DrizzleDB = NodePgDatabase<Record<string, unknown>>;
8
6
  export type Args = {
7
+ /**
8
+ * Transform the schema after it's built.
9
+ * You can use it to customize the schema with features that aren't supported by Payload.
10
+ * Examples may include: composite indices, generated columns, vectors
11
+ */
12
+ afterSchemaInit?: PostgresSchemaHook[];
13
+ /**
14
+ * Transform the schema before it's built.
15
+ * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.
16
+ * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)
17
+ */
18
+ beforeSchemaInit?: PostgresSchemaHook[];
19
+ /**
20
+ * Pass `true` to disale auto database creation if it doesn't exist.
21
+ * @default false
22
+ */
23
+ disableCreateDatabase?: boolean;
24
+ extensions?: string[];
9
25
  idType?: 'serial' | 'uuid';
10
26
  localesSuffix?: string;
11
27
  logger?: DrizzleConfig['logger'];
12
28
  migrationDir?: string;
13
29
  pool: PoolConfig;
30
+ prodMigrations?: {
31
+ down: (args: MigrateDownArgs) => Promise<void>;
32
+ name: string;
33
+ up: (args: MigrateUpArgs) => Promise<void>;
34
+ }[];
14
35
  push?: boolean;
15
36
  relationshipsSuffix?: string;
16
- schemaName?: string;
17
- versionsSuffix?: string;
18
- };
19
- export type GenericColumn = PgColumn<ColumnBaseConfig<ColumnDataType, string>, Record<string, unknown>>;
20
- export type GenericColumns = {
21
- [x: string]: GenericColumn;
22
- };
23
- export type GenericTable = PgTableWithColumns<{
24
- columns: GenericColumns;
25
- dialect: string;
26
- name: string;
27
- schema: undefined;
28
- }>;
29
- export type GenericEnum = PgEnum<[string, ...string[]]>;
30
- export type GenericRelation = Relations<string, Record<string, Relation<string>>>;
31
- export type DrizzleTransaction = PgTransaction<NodePgQueryResultHKT, Record<string, unknown>, ExtractTablesWithRelations<Record<string, unknown>>>;
32
- export type PostgresAdapter = BaseDatabaseAdapter & {
33
- drizzle: DrizzleDB;
34
- enums: Record<string, GenericEnum>;
35
37
  /**
36
- * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
37
- * Used for returning properly formed errors from unique fields
38
+ * The schema name to use for the database
39
+ * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.
38
40
  */
39
- fieldConstraints: Record<string, Record<string, string>>;
40
- idType: Args['idType'];
41
- initializing: Promise<void>;
42
- localesSuffix?: string;
43
- logger: DrizzleConfig['logger'];
44
- pgSchema?: {
45
- table: PgTableFn;
46
- } | PgSchema;
47
- pool: Pool;
48
- poolOptions: Args['pool'];
49
- push: boolean;
50
- rejectInitializing: () => void;
51
- relations: Record<string, GenericRelation>;
52
- relationshipsSuffix?: string;
53
- resolveInitializing: () => void;
54
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
55
- schemaName?: Args['schemaName'];
56
- sessions: {
57
- [id: string]: {
58
- db: DrizzleTransaction;
59
- reject: () => Promise<void>;
60
- resolve: () => Promise<void>;
61
- };
62
- };
63
- tableNameMap: Map<string, string>;
64
- tables: Record<string, GenericTable | PgTableWithColumns<any>>;
41
+ schemaName?: string;
42
+ tablesFilter?: string[];
43
+ transactionOptions?: false | PgTransactionConfig;
65
44
  versionsSuffix?: string;
66
45
  };
67
- export type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar';
68
- export type PostgresAdapterResult = (args: {
69
- payload: Payload;
70
- }) => PostgresAdapter;
71
- export type MigrateUpArgs = {
72
- payload: Payload;
73
- req?: Partial<PayloadRequest>;
74
- };
75
- export type MigrateDownArgs = {
76
- payload: Payload;
77
- req?: Partial<PayloadRequest>;
78
- };
46
+ export type PostgresAdapter = {
47
+ pool: Pool;
48
+ poolOptions: PoolConfig;
49
+ } & BasePostgresAdapter;
79
50
  declare module 'payload' {
80
- interface DatabaseAdapter extends Omit<Args, 'migrationDir' | 'pool'>, BaseDatabaseAdapter {
81
- drizzle: DrizzleDB;
51
+ interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
52
+ afterSchemaInit: PostgresSchemaHook[];
53
+ beforeSchemaInit: PostgresSchemaHook[];
54
+ beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>;
55
+ drizzle: PostgresDB;
82
56
  enums: Record<string, GenericEnum>;
57
+ extensions: Record<string, boolean>;
58
+ /**
59
+ * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
60
+ * Used for returning properly formed errors from unique fields
61
+ */
83
62
  fieldConstraints: Record<string, Record<string, string>>;
84
- localeSuffix?: string;
63
+ idType: Args['idType'];
64
+ initializing: Promise<void>;
65
+ localesSuffix?: string;
66
+ logger: DrizzleConfig['logger'];
67
+ pgSchema?: {
68
+ table: PgTableFn;
69
+ } | PgSchema;
85
70
  pool: Pool;
71
+ poolOptions: Args['pool'];
72
+ prodMigrations?: {
73
+ down: (args: MigrateDownArgs) => Promise<void>;
74
+ name: string;
75
+ up: (args: MigrateUpArgs) => Promise<void>;
76
+ }[];
86
77
  push: boolean;
87
- relations: Record<string, GenericRelation>;
78
+ rejectInitializing: () => void;
88
79
  relationshipsSuffix?: string;
89
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
90
- sessions: {
91
- [id: string]: {
92
- db: DrizzleTransaction;
93
- reject: () => Promise<void>;
94
- resolve: () => Promise<void>;
95
- };
96
- };
97
- tables: Record<string, GenericTable>;
80
+ resolveInitializing: () => void;
81
+ schema: Record<string, unknown>;
82
+ schemaName?: Args['schemaName'];
83
+ tableNameMap: Map<string, string>;
84
+ tablesFilter?: string[];
98
85
  versionsSuffix?: string;
99
86
  }
100
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n} from 'drizzle-orm'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgEnum,\n PgSchema,\n PgTableWithColumns,\n PgTransaction,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { BaseDatabaseAdapter, Payload, PayloadRequest } from 'payload'\nimport type { Pool, PoolConfig } from 'pg'\n\nexport type DrizzleDB = NodePgDatabase<Record<string, unknown>>\n\nexport type Args = {\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n versionsSuffix?: string\n}\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type DrizzleTransaction = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type PostgresAdapter = BaseDatabaseAdapter & {\n drizzle: DrizzleDB\n enums: Record<string, GenericEnum>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable | PgTableWithColumns<any>>\n versionsSuffix?: string\n}\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type PostgresAdapterResult = (args: { payload: Payload }) => PostgresAdapter\n\nexport type MigrateUpArgs = { payload: Payload; req?: Partial<PayloadRequest> }\nexport type MigrateDownArgs = { payload: Payload; req?: Partial<PayloadRequest> }\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'migrationDir' | 'pool'>,\n BaseDatabaseAdapter {\n drizzle: DrizzleDB\n enums: Record<string, GenericEnum>\n fieldConstraints: Record<string, Record<string, string>>\n localeSuffix?: string\n pool: Pool\n push: boolean\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAmGA,WAAiF"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n BasePostgresAdapter,\n GenericEnum,\n MigrateDownArgs,\n MigrateUpArgs,\n PostgresDB,\n PostgresSchemaHook,\n} from '@payloadcms/drizzle/postgres'\nimport type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig } from 'drizzle-orm'\nimport type { PgSchema, PgTableFn, PgTransactionConfig } from 'drizzle-orm/pg-core'\nimport type { Pool, PoolConfig } from 'pg'\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: PostgresSchemaHook[]\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: PostgresSchemaHook[]\n /**\n * Pass `true` to disale auto database creation if it doesn't exist.\n * @default false\n */\n disableCreateDatabase?: boolean\n extensions?: string[]\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.\n */\n schemaName?: string\n tablesFilter?: string[]\n transactionOptions?: false | PgTransactionConfig\n versionsSuffix?: string\n}\n\nexport type PostgresAdapter = {\n pool: Pool\n poolOptions: PoolConfig\n} & BasePostgresAdapter\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n afterSchemaInit: PostgresSchemaHook[]\n\n beforeSchemaInit: PostgresSchemaHook[]\n beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>\n drizzle: PostgresDB\n enums: Record<string, GenericEnum>\n extensions: Record<string, boolean>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, unknown>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tablesFilter?: string[]\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAsDA,WAGuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-postgres",
3
- "version": "3.0.0-canary.d6053cd",
3
+ "version": "3.0.0-canary.dc8b1fe",
4
4
  "description": "The officially supported Postgres database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -35,25 +35,25 @@
35
35
  "mock.js"
36
36
  ],
37
37
  "dependencies": {
38
- "@libsql/client": "^0.5.2",
39
- "console-table-printer": "2.11.2",
40
- "drizzle-kit": "0.20.14-1f2c838",
41
- "drizzle-orm": "0.29.4",
38
+ "@types/pg": "8.10.2",
39
+ "console-table-printer": "2.12.1",
40
+ "drizzle-kit": "0.28.0",
41
+ "drizzle-orm": "0.36.1",
42
42
  "pg": "8.11.3",
43
43
  "prompts": "2.4.2",
44
44
  "to-snake-case": "1.0.0",
45
- "uuid": "10.0.0"
45
+ "uuid": "10.0.0",
46
+ "@payloadcms/drizzle": "3.0.0-canary.dc8b1fe"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
49
- "@types/pg": "8.10.2",
50
50
  "@types/to-snake-case": "1.0.0",
51
- "esbuild": "0.23.0",
52
- "@payloadcms/eslint-config": "3.0.0-beta.59",
53
- "payload": "3.0.0-canary.d6053cd"
51
+ "esbuild": "0.23.1",
52
+ "@payloadcms/eslint-config": "3.0.0-beta.112",
53
+ "payload": "3.0.0-canary.dc8b1fe"
54
54
  },
55
55
  "peerDependencies": {
56
- "payload": "3.0.0-canary.d6053cd"
56
+ "payload": "3.0.0-canary.dc8b1fe"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm renamePredefinedMigrations",
@@ -61,6 +61,8 @@
61
61
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
62
62
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
63
63
  "clean": "rimraf {dist,*.tsbuildinfo}",
64
- "renamePredefinedMigrations": "tsx ./scripts/renamePredefinedMigrations.ts"
64
+ "lint": "eslint .",
65
+ "lint:fix": "eslint . --fix",
66
+ "renamePredefinedMigrations": "node --no-deprecation --import @swc-node/register/esm-register ./scripts/renamePredefinedMigrations.ts"
65
67
  }
66
68
  }
package/dist/count.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Count } from 'payload';
2
- export declare const count: Count;
3
- //# sourceMappingURL=count.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,SAAS,CAAA;AAW/D,eAAO,MAAM,KAAK,EAAE,KA0CnB,CAAA"}
package/dist/count.js DELETED
@@ -1,41 +0,0 @@
1
- import { sql } from 'drizzle-orm';
2
- import toSnakeCase from 'to-snake-case';
3
- import { chainMethods } from './find/chainMethods.js';
4
- import buildQuery from './queries/buildQuery.js';
5
- export const count = async function count({ collection, locale, req, where: whereArg }) {
6
- const collectionConfig = this.payload.collections[collection].config;
7
- const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug));
8
- const db = this.sessions[await req.transactionID]?.db || this.drizzle;
9
- const table = this.tables[tableName];
10
- const { joins, where } = await buildQuery({
11
- adapter: this,
12
- fields: collectionConfig.fields,
13
- locale,
14
- tableName,
15
- where: whereArg
16
- });
17
- const selectCountMethods = [];
18
- Object.entries(joins).forEach(([joinTable, condition])=>{
19
- if (joinTable) {
20
- selectCountMethods.push({
21
- args: [
22
- this.tables[joinTable],
23
- condition
24
- ],
25
- method: 'leftJoin'
26
- });
27
- }
28
- });
29
- const countResult = await chainMethods({
30
- methods: selectCountMethods,
31
- query: db.select({
32
- count: sql`count
33
- (DISTINCT ${this.tables[tableName].id})`
34
- }).from(table).where(where)
35
- });
36
- return {
37
- totalDocs: Number(countResult[0].count)
38
- };
39
- };
40
-
41
- //# sourceMappingURL=count.js.map
package/dist/count.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/count.ts"],"sourcesContent":["import type { Count, SanitizedCollectionConfig } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { ChainedMethods } from './find/chainMethods.js'\nimport type { PostgresAdapter } from './types.js'\n\nimport { chainMethods } from './find/chainMethods.js'\nimport buildQuery from './queries/buildQuery.js'\n\nexport const count: Count = async function count(\n this: PostgresAdapter,\n { collection, locale, req, where: whereArg },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const db = this.sessions[await req.transactionID]?.db || this.drizzle\n const table = this.tables[tableName]\n\n const { joins, where } = await buildQuery({\n adapter: this,\n fields: collectionConfig.fields,\n locale,\n tableName,\n where: whereArg,\n })\n\n const selectCountMethods: ChainedMethods = []\n\n Object.entries(joins).forEach(([joinTable, condition]) => {\n if (joinTable) {\n selectCountMethods.push({\n args: [this.tables[joinTable], condition],\n method: 'leftJoin',\n })\n }\n })\n\n const countResult = await chainMethods({\n methods: selectCountMethods,\n query: db\n .select({\n count: sql<number>`count\n (DISTINCT ${this.tables[tableName].id})`,\n })\n .from(table)\n .where(where),\n })\n\n return { totalDocs: Number(countResult[0].count) }\n}\n"],"names":["sql","toSnakeCase","chainMethods","buildQuery","count","collection","locale","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","db","sessions","transactionID","drizzle","table","tables","joins","adapter","fields","selectCountMethods","Object","entries","forEach","joinTable","condition","push","args","method","countResult","methods","query","select","id","from","totalDocs","Number"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,YAAY,QAAQ,yBAAwB;AACrD,OAAOC,gBAAgB,0BAAyB;AAEhD,OAAO,MAAMC,QAAe,eAAeA,MAEzC,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE5C,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACP,WAAW,CAACQ,MAAM;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACf,YAAYS,iBAAiBO,IAAI;IAEzE,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMZ,IAAIa,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IACrE,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACT,UAAU;IAEpC,MAAM,EAAEU,KAAK,EAAEhB,KAAK,EAAE,GAAG,MAAML,WAAW;QACxCsB,SAAS,IAAI;QACbC,QAAQhB,iBAAiBgB,MAAM;QAC/BpB;QACAQ;QACAN,OAAOC;IACT;IAEA,MAAMkB,qBAAqC,EAAE;IAE7CC,OAAOC,OAAO,CAACL,OAAOM,OAAO,CAAC,CAAC,CAACC,WAAWC,UAAU;QACnD,IAAID,WAAW;YACbJ,mBAAmBM,IAAI,CAAC;gBACtBC,MAAM;oBAAC,IAAI,CAACX,MAAM,CAACQ,UAAU;oBAAEC;iBAAU;gBACzCG,QAAQ;YACV;QACF;IACF;IAEA,MAAMC,cAAc,MAAMlC,aAAa;QACrCmC,SAASV;QACTW,OAAOpB,GACJqB,MAAM,CAAC;YACNnC,OAAOJ,GAAW,CAAC;sBACL,EAAE,IAAI,CAACuB,MAAM,CAACT,UAAU,CAAC0B,EAAE,CAAC,CAAC,CAAC;QAC9C,GACCC,IAAI,CAACnB,OACLd,KAAK,CAACA;IACX;IAEA,OAAO;QAAEkC,WAAWC,OAAOP,WAAW,CAAC,EAAE,CAAChC,KAAK;IAAE;AACnD,EAAC"}
package/dist/create.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Create } from 'payload';
2
- export declare const create: Create;
3
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQrC,eAAO,MAAM,MAAM,EAAE,MAoBpB,CAAA"}
package/dist/create.js DELETED
@@ -1,19 +0,0 @@
1
- import toSnakeCase from 'to-snake-case';
2
- import { upsertRow } from './upsertRow/index.js';
3
- export const create = async function create({ collection: collectionSlug, data, req }) {
4
- const db = this.sessions[await req.transactionID]?.db || this.drizzle;
5
- const collection = this.payload.collections[collectionSlug].config;
6
- const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
7
- const result = await upsertRow({
8
- adapter: this,
9
- data,
10
- db,
11
- fields: collection.fields,
12
- operation: 'create',
13
- req,
14
- tableName
15
- });
16
- return result;
17
- };
18
-
19
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/create.ts"],"sourcesContent":["import type { Create } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const create: Create = async function create(\n this: PostgresAdapter,\n { collection: collectionSlug, data, req },\n) {\n const db = this.sessions[await req.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const result = await upsertRow({\n adapter: this,\n data,\n db,\n fields: collection.fields,\n operation: 'create',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","create","collection","collectionSlug","data","req","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","result","adapter","fields","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,SAAiB,eAAeA,OAE3C,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,GAAG,EAAE;IAEzC,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMF,IAAIG,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IACrE,MAAMP,aAAa,IAAI,CAACQ,OAAO,CAACC,WAAW,CAACR,eAAe,CAACS,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYG,WAAWc,IAAI;IAEnE,MAAMC,SAAS,MAAMjB,UAAU;QAC7BkB,SAAS,IAAI;QACbd;QACAE;QACAa,QAAQjB,WAAWiB,MAAM;QACzBC,WAAW;QACXf;QACAQ;IACF;IAEA,OAAOI;AACT,EAAC"}
@@ -1,4 +0,0 @@
1
- import type { CreateGlobalArgs } from 'payload';
2
- import type { PostgresAdapter } from './types.js';
3
- export declare function createGlobal<T extends Record<string, unknown>>(this: PostgresAdapter, { slug, data, req }: CreateGlobalArgs): Promise<T>;
4
- //# sourceMappingURL=createGlobal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createGlobal.d.ts","sourceRoot":"","sources":["../src/createGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,IAAI,EAAE,GAA0B,EAAE,EAAE,gBAAgB,GAC3D,OAAO,CAAC,CAAC,CAAC,CAiBZ"}