@contember/schema-migrations 1.2.0-alpha.8 → 1.2.0-beta.1

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 (315) hide show
  1. package/dist/src/Migration.d.ts +2 -0
  2. package/dist/src/Migration.d.ts.map +1 -1
  3. package/dist/src/Migration.js +2 -2
  4. package/dist/src/Migration.js.map +1 -1
  5. package/dist/src/MigrationCreator.d.ts +3 -1
  6. package/dist/src/MigrationCreator.d.ts.map +1 -1
  7. package/dist/src/MigrationCreator.js +2 -2
  8. package/dist/src/MigrationCreator.js.map +1 -1
  9. package/dist/src/MigrationDescriber.d.ts +1 -2
  10. package/dist/src/MigrationDescriber.d.ts.map +1 -1
  11. package/dist/src/MigrationDescriber.js +5 -7
  12. package/dist/src/MigrationDescriber.js.map +1 -1
  13. package/dist/src/MigrationFilesManager.d.ts.map +1 -1
  14. package/dist/src/MigrationFilesManager.js +10 -19
  15. package/dist/src/MigrationFilesManager.js.map +1 -1
  16. package/dist/src/MigrationsResolver.d.ts.map +1 -1
  17. package/dist/src/MigrationsResolver.js +1 -0
  18. package/dist/src/MigrationsResolver.js.map +1 -1
  19. package/dist/src/SchemaDiffer.d.ts +6 -1
  20. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  21. package/dist/src/SchemaDiffer.js +46 -54
  22. package/dist/src/SchemaDiffer.js.map +1 -1
  23. package/dist/src/SchemaMigrator.d.ts +3 -2
  24. package/dist/src/SchemaMigrator.d.ts.map +1 -1
  25. package/dist/src/SchemaMigrator.js.map +1 -1
  26. package/dist/src/index.d.ts +1 -5
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +1 -11
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/modifications/ModificationHandler.d.ts +16 -8
  31. package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
  32. package/dist/src/modifications/ModificationHandler.js +9 -1
  33. package/dist/src/modifications/ModificationHandler.js.map +1 -1
  34. package/dist/src/modifications/ModificationHandlerFactory.d.ts +8 -7
  35. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  36. package/dist/src/modifications/ModificationHandlerFactory.js +43 -39
  37. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  38. package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts +13 -2
  39. package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  40. package/dist/src/modifications/acl/PatchAclSchemaModification.js +28 -28
  41. package/dist/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  42. package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts +17 -3
  43. package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  44. package/dist/src/modifications/acl/UpdateAclSchemaModification.js +33 -30
  45. package/dist/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  46. package/dist/src/modifications/columns/CreateColumnModification.d.ts +21 -3
  47. package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  48. package/dist/src/modifications/columns/CreateColumnModification.js +72 -69
  49. package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
  50. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +20 -4
  51. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  52. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +78 -71
  53. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  54. package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts +18 -2
  55. package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  56. package/dist/src/modifications/columns/UpdateColumnNameModification.js +97 -94
  57. package/dist/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  58. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +21 -3
  59. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  60. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +72 -66
  61. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  62. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +18 -2
  63. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  64. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +45 -42
  65. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  66. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +1 -1
  67. package/dist/src/modifications/differs/RemoveChangedFieldDiffer.d.ts +1 -3
  68. package/dist/src/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
  69. package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js +1 -1
  70. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts +1 -2
  71. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +1 -1
  72. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +7 -20
  73. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +1 -1
  74. package/dist/src/modifications/entities/CreateEntityModification.d.ts +19 -2
  75. package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  76. package/dist/src/modifications/entities/CreateEntityModification.js +66 -63
  77. package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
  78. package/dist/src/modifications/entities/CreateViewModification.d.ts +21 -2
  79. package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
  80. package/dist/src/modifications/entities/CreateViewModification.js +59 -56
  81. package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
  82. package/dist/src/modifications/entities/RemoveEntityModification.d.ts +22 -2
  83. package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  84. package/dist/src/modifications/entities/RemoveEntityModification.js +73 -70
  85. package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  86. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +19 -2
  87. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  88. package/dist/src/modifications/entities/ToggleEventLogModification.js +57 -54
  89. package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  90. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +18 -2
  91. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  92. package/dist/src/modifications/entities/UpdateEntityNameModification.js +78 -78
  93. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  94. package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts +18 -2
  95. package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  96. package/dist/src/modifications/entities/UpdateEntityTableNameModification.js +40 -34
  97. package/dist/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  98. package/dist/src/modifications/entities/UpdateViewModification.d.ts +15 -3
  99. package/dist/src/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  100. package/dist/src/modifications/entities/UpdateViewModification.js +28 -28
  101. package/dist/src/modifications/entities/UpdateViewModification.js.map +1 -1
  102. package/dist/src/modifications/enums/CreateEnumModification.d.ts +18 -2
  103. package/dist/src/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  104. package/dist/src/modifications/enums/CreateEnumModification.js +42 -36
  105. package/dist/src/modifications/enums/CreateEnumModification.js.map +1 -1
  106. package/dist/src/modifications/enums/RemoveEnumModification.d.ts +18 -2
  107. package/dist/src/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  108. package/dist/src/modifications/enums/RemoveEnumModification.js +36 -33
  109. package/dist/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  110. package/dist/src/modifications/enums/UpdateEnumModification.d.ts +19 -2
  111. package/dist/src/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  112. package/dist/src/modifications/enums/UpdateEnumModification.js +43 -40
  113. package/dist/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  114. package/dist/src/modifications/fields/RemoveFieldModification.d.ts +20 -2
  115. package/dist/src/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  116. package/dist/src/modifications/fields/RemoveFieldModification.js +67 -64
  117. package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  118. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +18 -2
  119. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  120. package/dist/src/modifications/fields/UpdateFieldNameModification.js +132 -132
  121. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  122. package/dist/src/modifications/index.d.ts +14 -0
  123. package/dist/src/modifications/index.d.ts.map +1 -0
  124. package/dist/src/modifications/index.js +32 -0
  125. package/dist/src/modifications/index.js.map +1 -0
  126. package/dist/src/modifications/indexes/CreateIndexModification.d.ts +18 -3
  127. package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  128. package/dist/src/modifications/indexes/CreateIndexModification.js +68 -65
  129. package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  130. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +18 -2
  131. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  132. package/dist/src/modifications/indexes/RemoveIndexModification.js +47 -44
  133. package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  134. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +22 -3
  135. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  136. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +68 -65
  137. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  138. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +22 -2
  139. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  140. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +81 -70
  141. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  142. package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +18 -3
  143. package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  144. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js +36 -33
  145. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  146. package/dist/src/modifications/relations/CreateRelationModification.d.ts +24 -3
  147. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  148. package/dist/src/modifications/relations/CreateRelationModification.js +99 -85
  149. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  150. package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +18 -2
  151. package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  152. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js +42 -39
  153. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  154. package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts +18 -2
  155. package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  156. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js +45 -42
  157. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  158. package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts +19 -2
  159. package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  160. package/dist/src/modifications/relations/MakeRelationNotNullModification.js +55 -52
  161. package/dist/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  162. package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts +18 -2
  163. package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  164. package/dist/src/modifications/relations/MakeRelationNullableModification.js +54 -51
  165. package/dist/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  166. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +25 -0
  167. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -0
  168. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +84 -0
  169. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -0
  170. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +18 -3
  171. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  172. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +42 -39
  173. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  174. package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts +18 -3
  175. package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  176. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js +43 -40
  177. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  178. package/dist/src/modifications/relations/index.d.ts +1 -1
  179. package/dist/src/modifications/relations/index.d.ts.map +1 -1
  180. package/dist/src/modifications/relations/index.js +1 -1
  181. package/dist/src/modifications/relations/index.js.map +1 -1
  182. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts +28 -0
  183. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts.map +1 -0
  184. package/dist/src/modifications/settings/UpdateSettingsModification.js +64 -0
  185. package/dist/src/modifications/settings/UpdateSettingsModification.js.map +1 -0
  186. package/dist/src/modifications/settings/index.d.ts +2 -0
  187. package/dist/src/modifications/settings/index.d.ts.map +1 -0
  188. package/dist/src/modifications/settings/index.js +18 -0
  189. package/dist/src/modifications/settings/index.js.map +1 -0
  190. package/dist/src/modifications/utils/columnUtils.d.ts +3 -0
  191. package/dist/src/modifications/utils/columnUtils.d.ts.map +1 -0
  192. package/dist/src/modifications/utils/columnUtils.js +9 -0
  193. package/dist/src/modifications/utils/columnUtils.js.map +1 -0
  194. package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -1
  195. package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
  196. package/dist/src/modifications/utils/createJunctionTable.js +7 -5
  197. package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
  198. package/dist/src/modifications/utils/diffUtils.d.ts +14 -12
  199. package/dist/src/modifications/utils/diffUtils.d.ts.map +1 -1
  200. package/dist/src/modifications/utils/diffUtils.js.map +1 -1
  201. package/dist/src/modifications/utils/schemaMeta.d.ts +8 -0
  202. package/dist/src/modifications/utils/schemaMeta.d.ts.map +1 -0
  203. package/dist/src/modifications/utils/schemaMeta.js +13 -0
  204. package/dist/src/modifications/utils/schemaMeta.js.map +1 -0
  205. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +4 -2
  206. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  207. package/dist/src/modifications/utils/schemaUpdateUtils.js +24 -2
  208. package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  209. package/dist/src/modifications/utils/viewDependencies.d.ts +4 -2
  210. package/dist/src/modifications/utils/viewDependencies.d.ts.map +1 -1
  211. package/dist/src/modifications/utils/viewDependencies.js +29 -6
  212. package/dist/src/modifications/utils/viewDependencies.js.map +1 -1
  213. package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts +13 -2
  214. package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  215. package/dist/src/modifications/validation/PatchValidationSchemaModification.js +28 -28
  216. package/dist/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  217. package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts +17 -3
  218. package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  219. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js +33 -30
  220. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  221. package/dist/src/tsconfig.tsbuildinfo +1 -1
  222. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +3 -2
  223. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
  224. package/dist/tests/cases/integration/createColumn.test.js +36 -0
  225. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  226. package/dist/tests/cases/integration/createManyHasMany.test.js +3 -2
  227. package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
  228. package/dist/tests/cases/integration/createView.test.js +80 -0
  229. package/dist/tests/cases/integration/createView.test.js.map +1 -1
  230. package/dist/tests/cases/integration/removeField.test.js +72 -0
  231. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  232. package/dist/tests/cases/integration/takenIndexName.test.d.ts +2 -0
  233. package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +1 -0
  234. package/dist/tests/cases/integration/takenIndexName.test.js +307 -0
  235. package/dist/tests/cases/integration/takenIndexName.test.js.map +1 -0
  236. package/dist/tests/cases/integration/updateColumnDefinition.test.js +160 -0
  237. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  238. package/dist/tests/scripts/checkCreateConsistentMigrations.js +5 -4
  239. package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
  240. package/dist/tests/src/tests.d.ts.map +1 -1
  241. package/dist/tests/src/tests.js +15 -5
  242. package/dist/tests/src/tests.js.map +1 -1
  243. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  244. package/package.json +6 -6
  245. package/src/Migration.ts +3 -1
  246. package/src/MigrationCreator.ts +2 -1
  247. package/src/MigrationDescriber.ts +8 -8
  248. package/src/MigrationFilesManager.ts +10 -20
  249. package/src/MigrationsResolver.ts +1 -0
  250. package/src/SchemaDiffer.ts +82 -85
  251. package/src/SchemaMigrator.ts +3 -2
  252. package/src/index.ts +1 -5
  253. package/src/modifications/ModificationHandler.ts +22 -9
  254. package/src/modifications/ModificationHandlerFactory.ts +69 -65
  255. package/src/modifications/acl/PatchAclSchemaModification.ts +7 -8
  256. package/src/modifications/acl/UpdateAclSchemaModification.ts +16 -15
  257. package/src/modifications/columns/CreateColumnModification.ts +21 -18
  258. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +58 -47
  259. package/src/modifications/columns/UpdateColumnNameModification.ts +60 -53
  260. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +23 -17
  261. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +18 -14
  262. package/src/modifications/differs/ChangeViewNonViewDiffer.ts +2 -2
  263. package/src/modifications/differs/RemoveChangedFieldDiffer.ts +2 -2
  264. package/src/modifications/differs/RemoveChangedViewDiffer.ts +9 -22
  265. package/src/modifications/entities/CreateEntityModification.ts +18 -9
  266. package/src/modifications/entities/CreateViewModification.ts +10 -8
  267. package/src/modifications/entities/RemoveEntityModification.ts +24 -16
  268. package/src/modifications/entities/ToggleEventLogModification.ts +20 -13
  269. package/src/modifications/entities/UpdateEntityNameModification.ts +11 -10
  270. package/src/modifications/entities/UpdateEntityTableNameModification.ts +18 -13
  271. package/src/modifications/entities/UpdateViewModification.ts +7 -7
  272. package/src/modifications/enums/CreateEnumModification.ts +18 -13
  273. package/src/modifications/enums/RemoveEnumModification.ts +14 -12
  274. package/src/modifications/enums/UpdateEnumModification.ts +15 -13
  275. package/src/modifications/fields/RemoveFieldModification.ts +20 -17
  276. package/src/modifications/fields/UpdateFieldNameModification.ts +18 -18
  277. package/src/modifications/index.ts +13 -0
  278. package/src/modifications/indexes/CreateIndexModification.ts +13 -12
  279. package/src/modifications/indexes/RemoveIndexModification.ts +12 -8
  280. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +48 -29
  281. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +50 -27
  282. package/src/modifications/relations/CreateRelationInverseSideModification.ts +15 -13
  283. package/src/modifications/relations/CreateRelationModification.ts +65 -35
  284. package/src/modifications/relations/DisableOrphanRemovalModification.ts +15 -12
  285. package/src/modifications/relations/EnableOrphanRemovalModification.ts +16 -13
  286. package/src/modifications/relations/MakeRelationNotNullModification.ts +16 -14
  287. package/src/modifications/relations/MakeRelationNullableModification.ts +17 -13
  288. package/src/modifications/relations/{ToggleManyHasManyEventLogModification.ts → ToggleJunctionEventLogModification.ts} +21 -14
  289. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +16 -14
  290. package/src/modifications/relations/UpdateRelationOrderByModification.ts +17 -14
  291. package/src/modifications/relations/index.ts +1 -1
  292. package/src/modifications/settings/UpdateSettingsModification.ts +87 -0
  293. package/src/modifications/settings/index.ts +1 -0
  294. package/src/modifications/utils/columnUtils.ts +5 -0
  295. package/src/modifications/utils/createJunctionTable.ts +7 -5
  296. package/src/modifications/utils/diffUtils.ts +12 -12
  297. package/src/modifications/utils/schemaMeta.ts +18 -0
  298. package/src/modifications/utils/schemaUpdateUtils.ts +22 -2
  299. package/src/modifications/utils/viewDependencies.ts +28 -5
  300. package/src/modifications/validation/PatchValidationSchemaModification.ts +7 -7
  301. package/src/modifications/validation/UpdateValidationSchemaModification.ts +17 -14
  302. package/src/tsconfig.json +2 -2
  303. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -2
  304. package/tests/cases/integration/createColumn.test.ts +33 -0
  305. package/tests/cases/integration/createManyHasMany.test.ts +3 -2
  306. package/tests/cases/integration/createView.test.ts +70 -0
  307. package/tests/cases/integration/removeField.test.ts +58 -0
  308. package/tests/cases/integration/takenIndexName.test.ts +314 -0
  309. package/tests/cases/integration/updateColumnDefinition.test.ts +138 -1
  310. package/tests/scripts/checkCreateConsistentMigrations.ts +3 -2
  311. package/tests/src/tests.ts +21 -11
  312. package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.d.ts +0 -8
  313. package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.d.ts.map +0 -1
  314. package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.js +0 -81
  315. package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { testMigrations } from '../../src/tests'
2
- import { SchemaBuilder } from '@contember/schema-definition'
2
+ import { SchemaBuilder, SchemaDefinition as def, createSchema } from '@contember/schema-definition'
3
3
  import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
+ import { updateColumnDefinitionModification } from '../../../src'
5
6
 
6
7
  testMigrations('update column definition', {
7
8
  originalSchema: new SchemaBuilder()
@@ -31,3 +32,139 @@ testMigrations('update column definition', {
31
32
  sql: SQL`ALTER TABLE "author"
32
33
  ALTER "registered_at" SET DATA TYPE timestamptz USING "registered_at"::timestamptz;`,
33
34
  })
35
+
36
+ namespace SeqOrig {
37
+ export class Author {
38
+ idSeq = def.intColumn()
39
+ }
40
+ }
41
+ namespace SeqUpdated {
42
+ export class Author {
43
+ idSeq = def.intColumn().notNull().sequence({ start: 10 })
44
+ }
45
+ }
46
+ testMigrations('add sequence to existing column', {
47
+ originalSchema: createSchema(SeqOrig).model,
48
+ updatedSchema: createSchema(SeqUpdated).model,
49
+ diff: [
50
+ updateColumnDefinitionModification.createModification({
51
+ entityName: 'Author',
52
+ fieldName: 'idSeq',
53
+ definition: {
54
+ type: Model.ColumnType.Int,
55
+ columnType: 'integer',
56
+ nullable: false,
57
+ sequence: {
58
+ precedence: 'BY DEFAULT',
59
+ start: 10,
60
+ },
61
+ },
62
+ }),
63
+ ],
64
+ sql: SQL`
65
+ ALTER TABLE "author"
66
+ ALTER "id_seq" SET DATA TYPE integer USING COALESCE("id_seq"::integer, nextval(PG_GET_SERIAL_SEQUENCE($pga$author$pga$, $pga$id_seq$pga$))),
67
+ ALTER "id_seq" SET NOT NULL,
68
+ ALTER "id_seq" ADD GENERATED BY DEFAULT AS IDENTITY (START WITH 10);`,
69
+ })
70
+
71
+
72
+ namespace ViewColDepOrig {
73
+ export class Author {
74
+ val = def.intColumn()
75
+ }
76
+
77
+ @def.View('SELECT * FROM author', {
78
+ dependencies: [Author],
79
+ })
80
+ export class AuthorMetaX {
81
+
82
+ }
83
+
84
+ @def.View('SELECT * FROM author_meta_x', {
85
+ dependencies: [AuthorMetaX],
86
+ })
87
+ export class AuthorMetaY {
88
+ }
89
+ }
90
+
91
+ namespace ViewColDepUpdated {
92
+ export class Author {
93
+ val = def.stringColumn()
94
+ }
95
+
96
+ @def.View('SELECT * FROM author', {
97
+ dependencies: [Author],
98
+ })
99
+ export class AuthorMetaX {
100
+
101
+ }
102
+
103
+ @def.View('SELECT * FROM author_meta_x', {
104
+ dependencies: [AuthorMetaX],
105
+ })
106
+ export class AuthorMetaY {
107
+ }
108
+ }
109
+
110
+ testMigrations('recreate view dependent on entity after changing column type', {
111
+ originalSchema: createSchema(ViewColDepOrig).model,
112
+ updatedSchema: createSchema(ViewColDepUpdated).model,
113
+ diff: [{ modification: 'removeEntity', entityName: 'AuthorMetaY' }, {
114
+ modification: 'removeEntity',
115
+ entityName: 'AuthorMetaX',
116
+ }, {
117
+ modification: 'updateColumnDefinition',
118
+ entityName: 'Author',
119
+ fieldName: 'val',
120
+ definition: { nullable: true, type: 'String', columnType: 'text' },
121
+ }, {
122
+ modification: 'createView',
123
+ entity: {
124
+ name: 'AuthorMetaX',
125
+ primary: 'id',
126
+ primaryColumn: 'id',
127
+ unique: {},
128
+ indexes: {},
129
+ fields: {
130
+ id: {
131
+ name: 'id',
132
+ columnName: 'id',
133
+ nullable: false,
134
+ type: 'Uuid',
135
+ columnType: 'uuid',
136
+ },
137
+ },
138
+ tableName: 'author_meta_x',
139
+ eventLog: { enabled: true },
140
+ view: { sql: 'SELECT * FROM author', dependencies: ['Author'] },
141
+ },
142
+ }, {
143
+ modification: 'createView',
144
+ entity: {
145
+ name: 'AuthorMetaY',
146
+ primary: 'id',
147
+ primaryColumn: 'id',
148
+ unique: {},
149
+ indexes: {},
150
+ fields: {
151
+ id: {
152
+ name: 'id',
153
+ columnName: 'id',
154
+ nullable: false,
155
+ type: 'Uuid',
156
+ columnType: 'uuid',
157
+ },
158
+ },
159
+ tableName: 'author_meta_y',
160
+ eventLog: { enabled: true },
161
+ view: { sql: 'SELECT * FROM author_meta_x', dependencies: ['AuthorMetaX'] },
162
+ },
163
+ }],
164
+ sql: SQL`DROP VIEW "author_meta_y";
165
+ DROP VIEW "author_meta_x";
166
+ ALTER TABLE "author"
167
+ ALTER "val" SET DATA TYPE text USING "val"::text;
168
+ CREATE VIEW "author_meta_x" AS SELECT * FROM author;
169
+ CREATE VIEW "author_meta_y" AS SELECT * FROM author_meta_x;`,
170
+ })
@@ -1,4 +1,4 @@
1
- import { relative } from 'path'
1
+ import { relative } from 'node:path'
2
2
  import {
3
3
  MigrationFilesManager,
4
4
  MigrationsResolver,
@@ -18,7 +18,8 @@ import { emptySchema, schemaType } from '@contember/schema-utils'
18
18
  for (const migration of await migrationsResolver.getMigrations()) {
19
19
  const nextSchema = migrator.applyModifications(schema, migration.modifications, migration.formatVersion)
20
20
  schemaType(nextSchema)
21
- differ.diffSchemas(schema, nextSchema)
21
+ const { meta, ...nextSchemaWithoutMeta } = nextSchema
22
+ differ.diffSchemas(schema, nextSchemaWithoutMeta)
22
23
 
23
24
  schema = nextSchema
24
25
  }
@@ -2,6 +2,8 @@ import { Migration, ModificationHandlerFactory, SchemaDiffer, SchemaMigrator, VE
2
2
  import { Acl, Model } from '@contember/schema'
3
3
  import { createMigrationBuilder } from '@contember/database-migrations'
4
4
  import { assert, describe, it } from 'vitest'
5
+ import { SchemaWithMeta } from '../../src/modifications/utils/schemaMeta'
6
+ import { emptySchema } from '@contember/schema-utils'
5
7
 
6
8
  const modificationFactory = new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)
7
9
  const schemaMigrator = new SchemaMigrator(modificationFactory)
@@ -27,17 +29,24 @@ export function testDiffSchemas(
27
29
  updatedAcl: Acl.Schema = emptyAcl,
28
30
  ) {
29
31
  const actualDiff = schemaDiffer.diffSchemas(
30
- { model: originalModel, acl: originalAcl, validation: {} },
31
- { model: updatedModel, acl: updatedAcl, validation: {} },
32
- false,
32
+ { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
33
+ { ...emptySchema, model: updatedModel, acl: updatedAcl, validation: {} },
34
+ { skipRecreateValidation: true },
33
35
  )
34
- assert.deepStrictEqual(actualDiff, expectedDiff)
35
- const schema = schemaMigrator.applyModifications(
36
- { model: originalModel, acl: originalAcl, validation: {} },
36
+ try {
37
+ assert.deepStrictEqual(actualDiff, expectedDiff)
38
+ } catch (e) {
39
+ // eslint-disable-next-line no-console
40
+ console.log(JSON.stringify(actualDiff))
41
+ throw e
42
+ }
43
+ const { meta, ...schema } = schemaMigrator.applyModifications(
44
+ { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
37
45
  actualDiff,
38
46
  VERSION_LATEST,
39
- )
47
+ ) as SchemaWithMeta
40
48
  assert.deepStrictEqual(schema, {
49
+ ...emptySchema,
41
50
  model: updatedModel,
42
51
  acl: updatedAcl,
43
52
  validation: {},
@@ -51,13 +60,14 @@ export function testApplyDiff(
51
60
  originalAcl: Acl.Schema = emptyAcl,
52
61
  expectedAcl: Acl.Schema = emptyAcl,
53
62
  ) {
54
- const actualSchema = schemaMigrator.applyModifications(
55
- { model: originalModel, acl: originalAcl, validation: {} },
63
+ const { meta, ...actualSchema } = schemaMigrator.applyModifications(
64
+ { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
56
65
  diff,
57
66
  VERSION_LATEST,
58
- )
67
+ ) as SchemaWithMeta
59
68
 
60
69
  assert.deepStrictEqual(actualSchema, {
70
+ ...emptySchema,
61
71
  model: expectedModel,
62
72
  acl: expectedAcl,
63
73
  validation: {},
@@ -65,7 +75,7 @@ export function testApplyDiff(
65
75
  }
66
76
 
67
77
  export function testGenerateSql(originalSchema: Model.Schema, diff: Migration.Modification[], expectedSql: string) {
68
- let schema = { model: originalSchema, acl: emptyAcl, validation: {} }
78
+ let schema = { ...emptySchema, model: originalSchema, acl: emptyAcl, validation: {} }
69
79
  const builder = createMigrationBuilder()
70
80
  for (let { modification, ...data } of diff) {
71
81
  const modificationHandler = modificationFactory.create(modification, data, schema, { formatVersion: VERSION_LATEST, systemSchema: 'system' })
@@ -1,8 +0,0 @@
1
- import { ModificationHandlerStatic } from '../ModificationHandler';
2
- export declare const ToggleJunctionEventLogModification: ModificationHandlerStatic<ToggleJunctionEventLogModificationData>;
3
- export interface ToggleJunctionEventLogModificationData {
4
- entityName: string;
5
- fieldName: string;
6
- enabled: boolean;
7
- }
8
- //# sourceMappingURL=ToggleManyHasManyEventLogModification.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleManyHasManyEventLogModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleManyHasManyEventLogModification.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8B,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAW9F,eAAO,MAAM,kCAAkC,EAAE,yBAAyB,CAAC,sCAAsC,CAiFhH,CAAA;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CAChB"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ToggleJunctionEventLogModification = void 0;
5
- const schema_1 = require("@contember/schema");
6
- const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
7
- const sqlUpdateUtils_1 = require("../utils/sqlUpdateUtils");
8
- const schema_utils_1 = require("@contember/schema-utils");
9
- const diffUtils_1 = require("../utils/diffUtils");
10
- const isIt_1 = require("../../utils/isIt");
11
- exports.ToggleJunctionEventLogModification = (_a = class {
12
- constructor(data, schema, options) {
13
- this.data = data;
14
- this.schema = schema;
15
- this.options = options;
16
- }
17
- createSql(builder) {
18
- const entity = this.schema.model.entities[this.data.entityName];
19
- const relation = entity.fields[this.data.fieldName];
20
- if (!(0, schema_utils_1.isRelation)(relation) || relation.type !== schema_1.Model.RelationType.ManyHasMany || !(0, schema_utils_1.isOwningRelation)(relation)) {
21
- throw new Error('invalid field');
22
- }
23
- const tableName = relation.joiningTable.tableName;
24
- if (this.data.enabled) {
25
- const primaryColumns = [
26
- relation.joiningTable.joiningColumn.columnName,
27
- relation.joiningTable.inverseJoiningColumn.columnName,
28
- ];
29
- (0, sqlUpdateUtils_1.createEventTrigger)(builder, this.options.systemSchema, tableName, primaryColumns);
30
- (0, sqlUpdateUtils_1.createEventTrxTrigger)(builder, this.options.systemSchema, tableName);
31
- }
32
- else {
33
- (0, sqlUpdateUtils_1.dropEventTrigger)(builder, tableName);
34
- (0, sqlUpdateUtils_1.dropEventTrxTrigger)(builder, tableName);
35
- }
36
- }
37
- getSchemaUpdater() {
38
- const { entityName, fieldName, enabled } = this.data;
39
- return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.updateField)(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {
40
- return {
41
- ...field,
42
- joiningTable: {
43
- ...joiningTable,
44
- eventLog: {
45
- enabled,
46
- },
47
- },
48
- };
49
- })));
50
- }
51
- describe() {
52
- return {
53
- message: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,
54
- };
55
- }
56
- static createModification(data) {
57
- return { modification: this.id, ...data };
58
- }
59
- static createDiff(originalSchema, updatedSchema) {
60
- return (0, diffUtils_1.updateRelations)(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {
61
- var _a, _b, _c, _d;
62
- if (originalRelation.type === updatedRelation.type &&
63
- (0, isIt_1.isIt)(updatedRelation, 'joiningTable') &&
64
- (0, isIt_1.isIt)(originalRelation, 'joiningTable')) {
65
- const newValue = (_b = (_a = updatedRelation.joiningTable.eventLog) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false;
66
- const oldValue = (_d = (_c = originalRelation.joiningTable.eventLog) === null || _c === void 0 ? void 0 : _c.enabled) !== null && _d !== void 0 ? _d : false;
67
- if (newValue !== oldValue) {
68
- return exports.ToggleJunctionEventLogModification.createModification({
69
- entityName: updatedEntity.name,
70
- fieldName: updatedRelation.name,
71
- enabled: newValue,
72
- });
73
- }
74
- }
75
- return undefined;
76
- });
77
- }
78
- },
79
- _a.id = 'toggleJunctionEventLog',
80
- _a);
81
- //# sourceMappingURL=ToggleManyHasManyEventLogModification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleManyHasManyEventLogModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleManyHasManyEventLogModification.ts"],"names":[],"mappings":"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"}