@contember/schema-migrations 2.0.0-alpha.9 → 2.0.0-beta.2

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 (325) hide show
  1. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  2. package/dist/development/src/MigrationDescriber.js.map +1 -1
  3. package/dist/development/src/SchemaDiffer.cjs +4 -3
  4. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  5. package/dist/development/src/SchemaDiffer.js +5 -4
  6. package/dist/development/src/SchemaDiffer.js.map +1 -1
  7. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  8. package/dist/development/src/SchemaMigrator.js.map +1 -1
  9. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  10. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  11. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  12. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  13. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  14. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  15. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  16. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  17. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  18. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  19. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  20. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  21. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  23. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  31. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  33. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  35. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  36. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  37. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  39. package/dist/development/src/modifications/columns/columnUtils.cjs +1 -1
  40. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  41. package/dist/development/src/modifications/columns/columnUtils.js +1 -1
  42. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  43. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  45. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  46. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  47. package/dist/development/src/modifications/constraints/utils.cjs.map +1 -1
  48. package/dist/development/src/modifications/constraints/utils.js.map +1 -1
  49. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  50. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  51. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  52. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  53. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  54. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  55. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  56. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  57. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  58. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  59. package/dist/development/src/modifications/entities/RemoveEntityModification.js +19 -2
  60. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  61. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  63. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  65. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  67. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  69. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  70. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  71. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  72. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  73. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  74. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  75. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  76. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  77. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  78. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  79. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  80. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  81. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  82. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  84. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  85. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  86. package/dist/development/src/modifications/indexes/utils.cjs.map +1 -1
  87. package/dist/development/src/modifications/indexes/utils.js.map +1 -1
  88. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  90. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  91. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  92. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  94. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  95. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  96. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  98. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  99. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  100. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  101. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  102. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  103. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  104. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  105. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  106. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  107. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  108. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  109. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  110. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  112. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  113. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  114. package/dist/development/src/modifications/relations/normalization.cjs.map +1 -1
  115. package/dist/development/src/modifications/relations/normalization.js.map +1 -1
  116. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  117. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  118. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  119. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  120. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  121. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  122. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  123. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  124. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  125. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  126. package/dist/development/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  127. package/dist/development/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  128. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  129. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  130. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  131. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  132. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  133. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  134. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  135. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  136. package/dist/development/src/utils/deepCopy.cjs.map +1 -1
  137. package/dist/development/src/utils/deepCopy.js.map +1 -1
  138. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  139. package/dist/production/src/MigrationDescriber.js.map +1 -1
  140. package/dist/production/src/SchemaDiffer.cjs +4 -3
  141. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  142. package/dist/production/src/SchemaDiffer.js +5 -4
  143. package/dist/production/src/SchemaDiffer.js.map +1 -1
  144. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  145. package/dist/production/src/SchemaMigrator.js.map +1 -1
  146. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  147. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  148. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  149. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  150. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  151. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  152. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  153. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  154. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  155. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  156. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  157. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  158. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  159. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  160. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  161. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  162. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  163. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  164. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  165. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  166. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  167. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  168. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  169. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  170. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  171. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  172. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  173. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  174. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  175. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  176. package/dist/production/src/modifications/columns/columnUtils.cjs +1 -1
  177. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  178. package/dist/production/src/modifications/columns/columnUtils.js +1 -1
  179. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  180. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  181. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  182. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  183. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  184. package/dist/production/src/modifications/constraints/utils.cjs.map +1 -1
  185. package/dist/production/src/modifications/constraints/utils.js.map +1 -1
  186. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  187. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  188. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  189. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  190. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  191. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  192. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  193. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  194. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  195. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  196. package/dist/production/src/modifications/entities/RemoveEntityModification.js +19 -2
  197. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  198. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  199. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  200. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  201. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  202. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  203. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  204. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  205. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  206. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  207. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  208. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  209. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  210. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  211. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  212. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  213. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  214. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  215. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  217. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  219. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  221. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  223. package/dist/production/src/modifications/indexes/utils.cjs.map +1 -1
  224. package/dist/production/src/modifications/indexes/utils.js.map +1 -1
  225. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  227. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  229. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  230. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  231. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  232. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  233. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  234. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  235. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  236. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  237. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  238. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  239. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  240. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  241. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  242. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  243. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  244. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  245. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  246. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  247. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  248. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  249. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  250. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  251. package/dist/production/src/modifications/relations/normalization.cjs.map +1 -1
  252. package/dist/production/src/modifications/relations/normalization.js.map +1 -1
  253. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  255. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  257. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  258. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  259. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  260. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  261. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  262. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  263. package/dist/production/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  264. package/dist/production/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  265. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  266. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  267. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  268. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  269. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  270. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  271. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  272. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  273. package/dist/production/src/utils/deepCopy.cjs.map +1 -1
  274. package/dist/production/src/utils/deepCopy.js.map +1 -1
  275. package/dist/tests/src/tests.d.ts +1 -1
  276. package/dist/tests/src/tests.d.ts.map +1 -1
  277. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  278. package/dist/types/SchemaDiffer.d.ts +4 -1
  279. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  280. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -0
  281. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  282. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  283. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -0
  284. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  285. package/dist/types/tsconfig.tsbuildinfo +1 -1
  286. package/package.json +9 -9
  287. package/src/SchemaDiffer.ts +8 -3
  288. package/src/modifications/acl/UpdateAclSchemaModification.ts +8 -1
  289. package/src/modifications/columns/columnUtils.ts +1 -1
  290. package/src/modifications/entities/RemoveEntityModification.ts +15 -3
  291. package/src/modifications/validation/UpdateValidationSchemaModification.ts +8 -1
  292. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +23 -19
  293. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +57 -55
  294. package/tests/cases/integration/convertOneToManyRelation.test.ts +46 -42
  295. package/tests/cases/integration/createAndDropIndex.test.ts +5 -4
  296. package/tests/cases/integration/createColumn.test.ts +79 -8
  297. package/tests/cases/integration/createEntity.test.ts +5 -4
  298. package/tests/cases/integration/createEnum.test.ts +3 -2
  299. package/tests/cases/integration/createManyHasMany.test.ts +3 -2
  300. package/tests/cases/integration/createManyHasOne.test.ts +3 -2
  301. package/tests/cases/integration/createOneHasMany.test.ts +3 -2
  302. package/tests/cases/integration/createOneHasOne.test.ts +3 -2
  303. package/tests/cases/integration/createRelationInverseSide.test.ts +5 -4
  304. package/tests/cases/integration/createUnique.test.ts +11 -10
  305. package/tests/cases/integration/createView.test.ts +5 -4
  306. package/tests/cases/integration/disableOrphanRemoval.test.ts +3 -2
  307. package/tests/cases/integration/enableOrphanRemoval.test.ts +3 -2
  308. package/tests/cases/integration/makeColumnNotNull.test.ts +3 -2
  309. package/tests/cases/integration/makeRelationNotNull.test.ts +3 -2
  310. package/tests/cases/integration/makeRelationNullable.test.ts +5 -4
  311. package/tests/cases/integration/patchAclSchema.test.ts +3 -2
  312. package/tests/cases/integration/removeEntity.test.ts +103 -6
  313. package/tests/cases/integration/removeEnum.test.ts +3 -2
  314. package/tests/cases/integration/removeField.test.ts +13 -12
  315. package/tests/cases/integration/toggleEventLog.test.ts +5 -4
  316. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -4
  317. package/tests/cases/integration/updateColumnDefinition.test.ts +11 -10
  318. package/tests/cases/integration/updateEntityName.test.ts +9 -8
  319. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -4
  320. package/tests/cases/integration/updateEnum.test.ts +3 -2
  321. package/tests/cases/integration/updateFieldName.test.ts +13 -12
  322. package/tests/cases/integration/updateRelationOnDelete.test.ts +4 -2
  323. package/tests/cases/integration/updateRelationOrderBy.test.ts +3 -2
  324. package/tests/cases/integration/updateView.test.ts +9 -8
  325. package/tests/src/tests.ts +17 -19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/schema-migrations",
3
- "version": "2.0.0-alpha.9",
3
+ "version": "2.0.0-beta.2",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -23,19 +23,19 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@contember/database": "2.0.0-alpha.9",
27
- "@contember/database-migrations": "2.0.0-alpha.9",
28
- "@contember/engine-common": "2.0.0-alpha.9",
29
- "@contember/schema": "2.0.0-alpha.9",
30
- "@contember/schema-utils": "2.0.0-alpha.9",
26
+ "@contember/database": "2.0.0-beta.2",
27
+ "@contember/database-migrations": "2.0.0-beta.2",
28
+ "@contember/engine-common": "2.0.0-beta.2",
29
+ "@contember/schema": "2.0.0-beta.2",
30
+ "@contember/schema-utils": "2.0.0-beta.2",
31
31
  "fast-deep-equal": "^3.1.3",
32
- "rfc6902": "^5.0.1"
32
+ "rfc6902": "^5.1.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@contember/schema-definition": "2.0.0-alpha.9"
35
+ "@contember/schema-definition": "2.0.0-beta.2"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "pg": "^8.9.0"
39
39
  },
40
40
  "type": "module"
41
- }
41
+ }
@@ -48,7 +48,12 @@ import { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/rela
48
48
  type DiffOptions = { skipRecreateValidation?: boolean; skipInitialSchemaValidation?: boolean }
49
49
 
50
50
  export class SchemaDiffer {
51
- constructor(private readonly schemaMigrator: SchemaMigrator) {}
51
+ constructor(
52
+ private readonly schemaMigrator: SchemaMigrator,
53
+ private readonly options?: {
54
+ maxPatchSize?: number
55
+ },
56
+ ) {}
52
57
 
53
58
  diffSchemas(originalSchema: Schema, updatedSchema: Schema, {
54
59
  skipInitialSchemaValidation = false,
@@ -99,8 +104,8 @@ export class SchemaDiffer {
99
104
  new CreateUniqueConstraintDiffer(),
100
105
  new CreateIndexDiffer(),
101
106
  new RemoveEnumDiffer(),
102
- new UpdateAclSchemaDiffer(),
103
- new UpdateValidationSchemaDiffer(),
107
+ new UpdateAclSchemaDiffer(this.options),
108
+ new UpdateValidationSchemaDiffer(this.options),
104
109
  new UpdateEntityOrderByDiffer(),
105
110
  new UpdateTargetDiffer(),
106
111
  new CreateTargetDiffer(),
@@ -32,12 +32,19 @@ export const updateAclSchemaModification = createModificationType({
32
32
  })
33
33
 
34
34
  export class UpdateAclSchemaDiffer implements Differ {
35
+ constructor(
36
+ private readonly options?: {
37
+ maxPatchSize?: number
38
+ },
39
+ ) {
40
+ }
41
+
35
42
  createDiff(originalSchema: Schema, updatedSchema: Schema) {
36
43
  if (deepEqual(originalSchema.acl, updatedSchema.acl)) {
37
44
  return []
38
45
  }
39
46
  const patch = createPatch(originalSchema.acl, updatedSchema.acl)
40
- if (patch.length <= 100) {
47
+ if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
41
48
  return [patchAclSchemaModification.createModification({ patch })]
42
49
  }
43
50
  return [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]
@@ -36,7 +36,7 @@ export const formatSeedExpression = ({ model, entity, columnType, fillValue, cop
36
36
  copyValue?: string
37
37
  }): string | null => {
38
38
  if (fillValue !== undefined) {
39
- return escapeValue(fillValue)
39
+ return escapeValue(fillValue).toString()
40
40
  } else if (copyValue !== undefined) {
41
41
  const copyFrom = getColumnName(model, entity, copyValue)
42
42
  return `${wrapIdentifier(copyFrom)}::${columnType}`
@@ -1,5 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
- import { Acl, Schema } from '@contember/schema'
2
+ import { Acl, Model, Schema } from '@contember/schema'
3
3
  import {
4
4
  removeField,
5
5
  SchemaUpdater,
@@ -18,7 +18,7 @@ import {
18
18
  ModificationHandlerOptions,
19
19
  } from '../ModificationHandler'
20
20
  import { VERSION_ACL_PATCH, VERSION_REMOVE_REFERENCING_RELATIONS } from '../ModificationVersions'
21
- import { isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'
21
+ import { acceptEveryFieldVisitor, isInverseRelation, isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'
22
22
  import { removeFieldModification } from '../fields'
23
23
 
24
24
  export class RemoveEntityModificationHandler implements ModificationHandler<RemoveEntityModificationData> {
@@ -40,6 +40,17 @@ export class RemoveEntityModificationHandler implements ModificationHandler<Remo
40
40
  removeFieldHandler.createSql(builder, options)
41
41
  })
42
42
  }
43
+ acceptEveryFieldVisitor(this.schema.model, entity, {
44
+ visitManyHasManyOwning: ({ relation }) => {
45
+ builder.dropTable(relation.joiningTable.tableName)
46
+ },
47
+ visitManyHasManyInverse: () => {},
48
+ visitColumn: () => {},
49
+ visitOneHasOneInverse: () => {},
50
+ visitOneHasOneOwning: () => {},
51
+ visitManyHasOne: () => {},
52
+ visitOneHasMany: () => {},
53
+ })
43
54
  builder.dropTable(entity.tableName)
44
55
  }
45
56
 
@@ -99,7 +110,8 @@ export class RemoveEntityModificationHandler implements ModificationHandler<Remo
99
110
  private getFieldsToRemove(schema: Schema): [entity: string, field: string][] {
100
111
  return Object.values(schema.model.entities).flatMap(entity =>
101
112
  Object.values(entity.fields)
102
- .filter(field => isRelation(field) && field.target === this.data.entityName)
113
+ .filter((field): field is Model.AnyRelation => isRelation(field) && field.target === this.data.entityName)
114
+ .filter(field => !isInverseRelation(field) || entity.name !== this.data.entityName) // skip self-referencing inverse relations
103
115
  .map((field): [string, string] => [entity.name, field.name]),
104
116
  )
105
117
  }
@@ -33,12 +33,19 @@ export const updateValidationSchemaModification = createModificationType({
33
33
  })
34
34
 
35
35
  export class UpdateValidationSchemaDiffer implements Differ {
36
+ constructor(
37
+ private readonly options?: {
38
+ maxPatchSize?: number
39
+ },
40
+ ) {
41
+ }
42
+
36
43
  createDiff(originalSchema: Schema, updatedSchema: Schema) {
37
44
  if (deepEqual(originalSchema.validation, updatedSchema.validation)) {
38
45
  return []
39
46
  }
40
47
  const patch = createPatch(originalSchema.validation, updatedSchema.validation)
41
- if (patch.length <= 20) {
48
+ if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
42
49
  return [patchValidationSchemaModification.createModification({ patch })]
43
50
  }
44
51
  return [updateValidationSchemaModification.createModification({ schema: updatedSchema.validation })]
@@ -1,3 +1,4 @@
1
+ import { describe } from 'bun:test'
1
2
  import { testMigrations } from '../../src/tests'
2
3
  import { SQL } from '../../src/tags'
3
4
  import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
@@ -25,24 +26,27 @@ namespace ConvertMHOtoOHOSchemaUpdated {
25
26
  }
26
27
  }
27
28
 
28
-
29
- testMigrations('convert one has many to one has one', {
30
- original: createSchema(ConvertMHOtoOHOSchemaOrig),
31
- updated: createSchema(ConvertMHOtoOHOSchemaUpdated),
32
- diff: [{
33
- entityName: 'ArticleReview',
34
- fieldName: 'article',
35
- modification: 'convertOneHasManyToOneHasOneRelation',
36
- newInverseSideFieldName: 'review',
37
- }],
38
- sql: SQL`DROP INDEX "article_review_article_id_idx"; ALTER TABLE "article_review" ADD UNIQUE ("article_id");`,
39
- databaseMetadata: createDatabaseMetadata({
40
- foreignKeys: [],
41
- indexes: [{
42
- indexName: 'article_review_article_id_idx',
43
- columnNames: ['article_id'],
44
- tableName: 'article_review',
29
+ describe('convert one has many to one has one', () => {
30
+ testMigrations({
31
+ original: createSchema(ConvertMHOtoOHOSchemaOrig),
32
+ updated: createSchema(ConvertMHOtoOHOSchemaUpdated),
33
+ diff: [{
34
+ entityName: 'ArticleReview',
35
+ fieldName: 'article',
36
+ modification: 'convertOneHasManyToOneHasOneRelation',
37
+ newInverseSideFieldName: 'review',
45
38
  }],
46
- uniqueConstraints: [],
47
- }),
39
+ sql: SQL`DROP INDEX "article_review_article_id_idx";
40
+ ALTER TABLE "article_review"
41
+ ADD UNIQUE ("article_id");`,
42
+ databaseMetadata: createDatabaseMetadata({
43
+ foreignKeys: [],
44
+ indexes: [{
45
+ indexName: 'article_review_article_id_idx',
46
+ columnNames: ['article_id'],
47
+ tableName: 'article_review',
48
+ }],
49
+ uniqueConstraints: [],
50
+ }),
51
+ })
48
52
  })
@@ -1,3 +1,4 @@
1
+ import { describe } from 'bun:test'
1
2
  import { testMigrations } from '../../src/tests'
2
3
  import { SQL } from '../../src/tags'
3
4
  import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
@@ -24,62 +25,63 @@ namespace ConvertOHMToMHMSchemaOrigUpdated {
24
25
  }
25
26
  }
26
27
 
27
-
28
- testMigrations('convert one has many to many has many', {
29
- original: createSchema(ConvertOHMToMHMSchemaOrig),
30
- updated: createSchema(ConvertOHMToMHMSchemaOrigUpdated),
31
- diff: [
32
- {
33
- modification: 'convertOneHasManyToManyHasManyRelation',
34
- entityName: 'Article',
35
- fieldName: 'category',
36
- owningSide: {
37
- type: 'ManyHasMany',
38
- name: 'categories',
39
- inversedBy: 'articles',
40
- target: 'Category',
41
- joiningTable: {
42
- tableName: 'article_categories',
43
- joiningColumn: {
44
- columnName: 'article_id',
45
- onDelete: 'cascade',
46
- },
47
- inverseJoiningColumn: {
48
- columnName: 'category_id',
49
- onDelete: 'cascade',
50
- },
51
- eventLog: {
52
- enabled: true,
28
+ describe('convert one has many to many has many', () => {
29
+ testMigrations({
30
+ original: createSchema(ConvertOHMToMHMSchemaOrig),
31
+ updated: createSchema(ConvertOHMToMHMSchemaOrigUpdated),
32
+ diff: [
33
+ {
34
+ modification: 'convertOneHasManyToManyHasManyRelation',
35
+ entityName: 'Article',
36
+ fieldName: 'category',
37
+ owningSide: {
38
+ type: 'ManyHasMany',
39
+ name: 'categories',
40
+ inversedBy: 'articles',
41
+ target: 'Category',
42
+ joiningTable: {
43
+ tableName: 'article_categories',
44
+ joiningColumn: {
45
+ columnName: 'article_id',
46
+ onDelete: 'cascade',
47
+ },
48
+ inverseJoiningColumn: {
49
+ columnName: 'category_id',
50
+ onDelete: 'cascade',
51
+ },
52
+ eventLog: {
53
+ enabled: true,
54
+ },
53
55
  },
54
56
  },
57
+ inverseSide: {
58
+ name: 'articles',
59
+ ownedBy: 'categories',
60
+ target: 'Article',
61
+ type: 'ManyHasMany',
62
+ },
55
63
  },
56
- inverseSide: {
57
- name: 'articles',
58
- ownedBy: 'categories',
59
- target: 'Article',
60
- type: 'ManyHasMany',
61
- },
62
- },
63
- ],
64
- sql: SQL`
65
- CREATE TABLE "article_categories" (
66
- "article_id" uuid NOT NULL REFERENCES "article"("id") ON DELETE CASCADE,
67
- "category_id" uuid NOT NULL REFERENCES "category"("id") ON DELETE CASCADE
68
- );
69
- ALTER TABLE "article_categories"
70
- ADD PRIMARY KEY ("article_id", "category_id");
71
-
72
- CREATE TRIGGER "log_event" AFTER INSERT OR UPDATE OR DELETE
73
- ON "article_categories" FOR EACH ROW
74
- EXECUTE PROCEDURE "system"."trigger_event"($pga$article_id$pga$, $pga$category_id$pga$);
75
-
76
- CREATE CONSTRAINT TRIGGER "log_event_trx" AFTER INSERT OR UPDATE OR DELETE
77
- ON "article_categories" DEFERRABLE INITIALLY DEFERRED FOR EACH ROW
78
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
79
-
80
- INSERT INTO "article_categories" ( "article_id", "category_id" )
81
- SELECT "id", "category_id" FROM "article" WHERE "category_id" IS NOT NULL;
82
-
83
- ALTER TABLE "article" DROP "category_id";
84
- `,
64
+ ],
65
+ sql: SQL`
66
+ CREATE TABLE "article_categories" (
67
+ "article_id" uuid NOT NULL REFERENCES "article"("id") ON DELETE CASCADE,
68
+ "category_id" uuid NOT NULL REFERENCES "category"("id") ON DELETE CASCADE
69
+ );
70
+ ALTER TABLE "article_categories"
71
+ ADD PRIMARY KEY ("article_id", "category_id");
72
+
73
+ CREATE TRIGGER "log_event" AFTER INSERT OR UPDATE OR DELETE
74
+ ON "article_categories" FOR EACH ROW
75
+ EXECUTE PROCEDURE "system"."trigger_event"($pga$article_id$pga$, $pga$category_id$pga$);
76
+
77
+ CREATE CONSTRAINT TRIGGER "log_event_trx" AFTER INSERT OR UPDATE OR DELETE
78
+ ON "article_categories" DEFERRABLE INITIALLY DEFERRED FOR EACH ROW
79
+ EXECUTE PROCEDURE "system"."trigger_event_commit"();
80
+
81
+ INSERT INTO "article_categories" ( "article_id", "category_id" )
82
+ SELECT "id", "category_id" FROM "article" WHERE "category_id" IS NOT NULL;
83
+
84
+ ALTER TABLE "article" DROP "category_id";
85
+ `,
86
+ })
85
87
  })
@@ -3,50 +3,54 @@ import { SchemaBuilder } from '@contember/schema-definition'
3
3
  import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
  import { createDatabaseMetadata } from '@contember/database'
6
+ import { describe } from 'bun:test'
6
7
 
7
- testMigrations('convert one has one to many has one relation without inverse side', {
8
- original: {
9
- model: new SchemaBuilder()
10
- .entity('Post', entity =>
11
- entity.oneHasOne('image', rel => rel.target('Image')),
12
- )
13
- .entity('Image', e => e.column('url', c => c.type(Model.ColumnType.String)))
14
- .buildSchema(),
15
- },
16
- updated: {
17
- model: new SchemaBuilder()
18
- .entity('Post', entity =>
19
- entity.manyHasOne('image', rel => rel.target('Image')),
20
- )
21
- .entity('Image', e => e.column('url', c => c.type(Model.ColumnType.String)))
22
- .buildSchema(),
23
- },
24
- diff: [
25
- {
26
- modification: 'convertOneToManyRelation',
27
- entityName: 'Post',
28
- fieldName: 'image',
8
+ describe('convert one has one to many has one relation', () => {
9
+ testMigrations({
10
+ original: {
11
+ model: new SchemaBuilder()
12
+ .entity('Post', entity =>
13
+ entity.oneHasOne('image', rel => rel.target('Image')),
14
+ )
15
+ .entity('Image', e => e.column('url', c => c.type(Model.ColumnType.String)))
16
+ .buildSchema(),
29
17
  },
30
- ],
31
- sql: SQL`
32
- CREATE INDEX ON "post" ("image_id");
33
- ALTER TABLE "post" DROP CONSTRAINT "uniq_post_image_id";
34
- `,
35
- databaseMetadata: createDatabaseMetadata({
36
- foreignKeys: [],
37
- indexes: [],
38
- uniqueConstraints: [{
39
- constraintName: 'uniq_post_image_id',
40
- columnNames: ['image_id'],
41
- tableName: 'post',
42
- deferred: false,
43
- deferrable: false,
44
- }],
45
- }),
18
+ updated: {
19
+ model: new SchemaBuilder()
20
+ .entity('Post', entity =>
21
+ entity.manyHasOne('image', rel => rel.target('Image')),
22
+ )
23
+ .entity('Image', e => e.column('url', c => c.type(Model.ColumnType.String)))
24
+ .buildSchema(),
25
+ },
26
+ diff: [
27
+ {
28
+ modification: 'convertOneToManyRelation',
29
+ entityName: 'Post',
30
+ fieldName: 'image',
31
+ },
32
+ ],
33
+ sql: SQL`
34
+ CREATE INDEX ON "post" ("image_id");
35
+ ALTER TABLE "post"
36
+ DROP CONSTRAINT "uniq_post_image_id";
37
+ `,
38
+ databaseMetadata: createDatabaseMetadata({
39
+ foreignKeys: [],
40
+ indexes: [],
41
+ uniqueConstraints: [{
42
+ constraintName: 'uniq_post_image_id',
43
+ columnNames: ['image_id'],
44
+ tableName: 'post',
45
+ deferred: false,
46
+ deferrable: false,
47
+ }],
48
+ }),
49
+ })
46
50
  })
47
51
 
48
52
 
49
- testMigrations('convert one has one to many has one relation with inverse side', {
53
+ describe('convert one has one to many has one relation with inverse side', () => testMigrations({
50
54
  original: {
51
55
  model: new SchemaBuilder()
52
56
  .entity('Post', entity =>
@@ -86,9 +90,9 @@ testMigrations('convert one has one to many has one relation with inverse side',
86
90
  deferrable: false,
87
91
  }],
88
92
  }),
89
- })
93
+ }))
90
94
 
91
- testMigrations('convert one has one to many has one relation with inverse side, but not renamed', {
95
+ describe('convert one has one to many has one relation with inverse side, but not renamed', () => testMigrations({
92
96
  original: {
93
97
  model: new SchemaBuilder()
94
98
  .entity('Post', entity =>
@@ -128,5 +132,5 @@ testMigrations('convert one has one to many has one relation with inverse side,
128
132
  deferrable: false,
129
133
  }],
130
134
  }),
131
- })
135
+ }))
132
136
 
@@ -1,3 +1,4 @@
1
+ import { describe } from 'bun:test'
1
2
  import { testMigrations } from '../../src/tests'
2
3
  import { SQL } from '../../src/tags'
3
4
  import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
@@ -17,7 +18,7 @@ namespace SchemaWithIndex {
17
18
  }
18
19
 
19
20
 
20
- testMigrations('create index', {
21
+ describe('create index', () => testMigrations({
21
22
  original: createSchema(SchemaWithoutIndex),
22
23
  updated: createSchema(SchemaWithIndex),
23
24
  diff: [
@@ -28,10 +29,10 @@ testMigrations('create index', {
28
29
  },
29
30
  ],
30
31
  sql: SQL`CREATE INDEX ON "article" ("title");`,
31
- })
32
+ }))
32
33
 
33
34
 
34
- testMigrations('drop index', {
35
+ describe('drop index', () => testMigrations({
35
36
  original: createSchema(SchemaWithIndex),
36
37
  updated: createSchema(SchemaWithoutIndex),
37
38
  diff: [
@@ -51,4 +52,4 @@ testMigrations('drop index', {
51
52
  }],
52
53
  uniqueConstraints: [],
53
54
  }),
54
- })
55
+ }))
@@ -1,9 +1,10 @@
1
1
  import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
2
2
  import { Model } from '@contember/schema'
3
3
  import { SQL } from '../../src/tags'
4
+ import { describe } from 'bun:test'
4
5
  import { testMigrations } from '../../src/tests'
5
6
 
6
- testMigrations('create a column with default value', {
7
+ describe('create a column with default value', () => testMigrations({
7
8
  original: createSchema({
8
9
  Author: class Author {
9
10
  email = def.stringColumn().unique()
@@ -34,9 +35,9 @@ testMigrations('create a column with default value', {
34
35
  UPDATE "author" SET "name" = $pga$unnamed author$pga$;
35
36
  SET CONSTRAINTS ALL IMMEDIATE; SET CONSTRAINTS ALL DEFERRED;
36
37
  ALTER TABLE "author" ALTER "name" SET NOT NULL;`,
37
- })
38
+ }))
38
39
 
39
- testMigrations('create a column with copy value', {
40
+ describe('create a column with copy value', () => testMigrations({
40
41
  original: createSchema({
41
42
  Author: class Author {
42
43
  email = def.stringColumn().unique()
@@ -67,10 +68,10 @@ testMigrations('create a column with copy value', {
67
68
  UPDATE "author" SET "name" = "email"::text;
68
69
  SET CONSTRAINTS ALL IMMEDIATE; SET CONSTRAINTS ALL DEFERRED;
69
70
  ALTER TABLE "author" ALTER "name" SET NOT NULL;`,
70
- })
71
+ }))
71
72
 
72
73
 
73
- testMigrations('create a column with default value with "using"', {
74
+ describe('create a column with default value with "using"', () => testMigrations({
74
75
  original: createSchema({
75
76
  Author: class Author {
76
77
  email = def.stringColumn().unique()
@@ -79,6 +80,10 @@ testMigrations('create a column with default value with "using"', {
79
80
  updated: createSchema({
80
81
  Author: class Author {
81
82
  name = def.stringColumn().default('unnamed author').notNull()
83
+ order = def.intColumn().default(0).notNull()
84
+ score = def.doubleColumn().default(1 / 3).notNull()
85
+ active = def.boolColumn().default(false).notNull()
86
+ createdAt = def.dateTimeColumn().default('2024-01-01 10:00').notNull()
82
87
  email = def.stringColumn().unique()
83
88
  },
84
89
  }),
@@ -97,7 +102,73 @@ testMigrations('create a column with default value with "using"', {
97
102
  fillValue: 'unnamed author',
98
103
  valueMigrationStrategy: 'using',
99
104
  },
105
+ {
106
+ modification: 'createColumn',
107
+ entityName: 'Author',
108
+ field: {
109
+ columnName: 'order',
110
+ name: 'order',
111
+ nullable: false,
112
+ default: 0,
113
+ type: Model.ColumnType.Int,
114
+ columnType: 'integer',
115
+ },
116
+ fillValue: 0,
117
+ valueMigrationStrategy: 'using',
118
+ },
119
+ {
120
+ modification: 'createColumn',
121
+ entityName: 'Author',
122
+ field: {
123
+ columnName: 'score',
124
+ name: 'score',
125
+ nullable: false,
126
+ default: 0.3333333333333333,
127
+ type: Model.ColumnType.Double,
128
+ columnType: 'double precision',
129
+ },
130
+ fillValue: 0.3333333333333333,
131
+ valueMigrationStrategy: 'using',
132
+ },
133
+ {
134
+ modification: 'createColumn',
135
+ entityName: 'Author',
136
+ field: {
137
+ columnName: 'active',
138
+ name: 'active',
139
+ nullable: false,
140
+ default: false,
141
+ type: Model.ColumnType.Bool,
142
+ columnType: 'boolean',
143
+ },
144
+ fillValue: false,
145
+ valueMigrationStrategy: 'using',
146
+ },
147
+ {
148
+ modification: 'createColumn',
149
+ entityName: 'Author',
150
+ field: {
151
+ columnName: 'created_at',
152
+ name: 'createdAt',
153
+ nullable: false,
154
+ default: '2024-01-01 10:00',
155
+ type: Model.ColumnType.DateTime,
156
+ columnType: 'timestamptz',
157
+ },
158
+ fillValue: '2024-01-01 10:00',
159
+ valueMigrationStrategy: 'using',
160
+ },
100
161
  ],
101
- sql: SQL`ALTER TABLE "author" ADD "name" text;
102
- ALTER TABLE "author" ALTER "name" SET DATA TYPE text USING $pga$unnamed author$pga$, ALTER "name" SET NOT NULL;`,
103
- })
162
+ sql: SQL`
163
+ ALTER TABLE "author" ADD "name" text;
164
+ ALTER TABLE "author" ALTER "name" SET DATA TYPE text USING $pga$unnamed author$pga$, ALTER "name" SET NOT NULL;
165
+ ALTER TABLE "author" ADD "order" integer;
166
+ ALTER TABLE "author" ALTER "order" SET DATA TYPE integer USING 0, ALTER "order" SET NOT NULL;
167
+ ALTER TABLE "author" ADD "score" double precision;
168
+ ALTER TABLE "author" ALTER "score" SET DATA TYPE double precision USING 0.3333333333333333, ALTER "score" SET NOT NULL;
169
+ ALTER TABLE "author" ADD "active" boolean;
170
+ ALTER TABLE "author" ALTER "active" SET DATA TYPE boolean USING false,
171
+ ALTER "active" SET NOT NULL; ALTER TABLE "author" ADD "created_at" timestamptz;
172
+ ALTER TABLE "author" ALTER "created_at" SET DATA TYPE timestamptz USING $pga$2024-01-01 10:00$pga$, ALTER "created_at" SET NOT NULL;
173
+ `,
174
+ }))
@@ -1,10 +1,11 @@
1
1
  import { createSchema, SchemaBuilder } from '@contember/schema-definition'
2
2
  import { Model } from '@contember/schema'
3
3
  import { SQL } from '../../src/tags'
4
+ import { describe } from 'bun:test'
4
5
  import { testMigrations } from '../../src/tests'
5
6
  import { SchemaDefinition as def } from '@contember/schema-definition'
6
7
 
7
- testMigrations('create a table (no relations, unique on column)', {
8
+ describe('create a table (no relations, unique on column)', () => testMigrations({
8
9
  original: { },
9
10
  updated: {
10
11
  model: new SchemaBuilder()
@@ -101,7 +102,7 @@ testMigrations('create a table (no relations, unique on column)', {
101
102
  ADD "registered_at" date;
102
103
  ALTER TABLE "author"
103
104
  ADD UNIQUE ("email");`,
104
- })
105
+ }))
105
106
 
106
107
  namespace ViewEntityUpdatedSchema {
107
108
  @def.View("SELECT null as id, 'John' AS name")
@@ -109,7 +110,7 @@ namespace ViewEntityUpdatedSchema {
109
110
  name = def.stringColumn()
110
111
  }
111
112
  }
112
- testMigrations('create a view', {
113
+ describe('create a view', () => testMigrations({
113
114
  original: {},
114
115
  updated: createSchema(ViewEntityUpdatedSchema),
115
116
  diff: [
@@ -146,4 +147,4 @@ testMigrations('create a view', {
146
147
  },
147
148
  ],
148
149
  sql: SQL`CREATE VIEW "author" AS SELECT null as id, 'John' AS name;`,
149
- })
150
+ }))
@@ -1,9 +1,10 @@
1
+ import { describe } from 'bun:test'
1
2
  import { testMigrations } from '../../src/tests'
2
3
  import { SchemaBuilder } from '@contember/schema-definition'
3
4
  import { Model } from '@contember/schema'
4
5
  import { SQL } from '../../src/tags'
5
6
 
6
- testMigrations('create enum', {
7
+ describe('create enum', () => testMigrations({
7
8
  original: {
8
9
  model: new SchemaBuilder()
9
10
  .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
@@ -40,4 +41,4 @@ testMigrations('create enum', {
40
41
  sql: SQL`CREATE DOMAIN "postStatus" AS text CONSTRAINT "poststatus_check" CHECK (VALUE IN('publish','draft'));
41
42
  ALTER TABLE "post"
42
43
  ADD "status" "postStatus";`,
43
- })
44
+ }))