@contember/schema-migrations 0.12.0-beta.2 → 1.0.0-alpha.3

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 (250) hide show
  1. package/dist/src/MigrationCreator.d.ts +0 -1
  2. package/dist/src/MigrationCreator.d.ts.map +1 -1
  3. package/dist/src/MigrationCreator.js +0 -6
  4. package/dist/src/MigrationCreator.js.map +1 -1
  5. package/dist/src/MigrationDescriber.js +1 -1
  6. package/dist/src/MigrationDescriber.js.map +1 -1
  7. package/dist/src/MigrationFilesManager.js +12 -12
  8. package/dist/src/MigrationFilesManager.js.map +1 -1
  9. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  10. package/dist/src/SchemaDiffer.js +8 -6
  11. package/dist/src/SchemaDiffer.js.map +1 -1
  12. package/dist/src/modifications/ModificationHandler.d.ts +0 -2
  13. package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
  14. package/dist/src/modifications/ModificationHandler.js.map +1 -1
  15. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  16. package/dist/src/modifications/ModificationHandlerFactory.js +4 -1
  17. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  18. package/dist/src/modifications/NoopModification.d.ts +0 -2
  19. package/dist/src/modifications/NoopModification.d.ts.map +1 -1
  20. package/dist/src/modifications/NoopModification.js +0 -3
  21. package/dist/src/modifications/NoopModification.js.map +1 -1
  22. package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  23. package/dist/src/modifications/acl/PatchAclSchemaModification.js +2 -5
  24. package/dist/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  25. package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  26. package/dist/src/modifications/acl/UpdateAclSchemaModification.js +2 -5
  27. package/dist/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  28. package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  29. package/dist/src/modifications/columns/CreateColumnModification.js +9 -44
  30. package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
  31. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  32. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +3 -6
  33. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  34. package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  35. package/dist/src/modifications/columns/UpdateColumnNameModification.js +2 -18
  36. package/dist/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  37. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  38. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +2 -5
  39. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  40. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  41. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +2 -5
  42. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  43. package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js +2 -2
  44. package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  45. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts +10 -0
  46. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +1 -0
  47. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +46 -0
  48. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +1 -0
  49. package/dist/src/modifications/differs/index.d.ts +1 -0
  50. package/dist/src/modifications/differs/index.d.ts.map +1 -1
  51. package/dist/src/modifications/differs/index.js +1 -0
  52. package/dist/src/modifications/differs/index.js.map +1 -1
  53. package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  54. package/dist/src/modifications/entities/CreateEntityModification.js +5 -6
  55. package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
  56. package/dist/src/modifications/entities/CreateViewModification.d.ts +7 -0
  57. package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -0
  58. package/dist/src/modifications/entities/CreateViewModification.js +60 -0
  59. package/dist/src/modifications/entities/CreateViewModification.js.map +1 -0
  60. package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  61. package/dist/src/modifications/entities/RemoveEntityModification.js +20 -16
  62. package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  63. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  64. package/dist/src/modifications/entities/UpdateEntityNameModification.js +19 -17
  65. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  66. package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  67. package/dist/src/modifications/entities/UpdateEntityTableNameModification.js +1 -10
  68. package/dist/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  69. package/dist/src/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  70. package/dist/src/modifications/entities/UpdateViewModification.js +1 -16
  71. package/dist/src/modifications/entities/UpdateViewModification.js.map +1 -1
  72. package/dist/src/modifications/entities/index.d.ts +1 -1
  73. package/dist/src/modifications/entities/index.d.ts.map +1 -1
  74. package/dist/src/modifications/entities/index.js +1 -1
  75. package/dist/src/modifications/entities/index.js.map +1 -1
  76. package/dist/src/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  77. package/dist/src/modifications/enums/CreateEnumModification.js +3 -6
  78. package/dist/src/modifications/enums/CreateEnumModification.js.map +1 -1
  79. package/dist/src/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  80. package/dist/src/modifications/enums/RemoveEnumModification.js +1 -4
  81. package/dist/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  82. package/dist/src/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  83. package/dist/src/modifications/enums/UpdateEnumModification.js +4 -7
  84. package/dist/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  85. package/dist/src/modifications/enums/enumUtils.js +1 -1
  86. package/dist/src/modifications/enums/enumUtils.js.map +1 -1
  87. package/dist/src/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  88. package/dist/src/modifications/fields/RemoveFieldModification.js +3 -21
  89. package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  90. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  91. package/dist/src/modifications/fields/UpdateFieldNameModification.js +11 -14
  92. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  93. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +8 -0
  94. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -0
  95. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +81 -0
  96. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -0
  97. package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  98. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js +3 -6
  99. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  100. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  101. package/dist/src/modifications/relations/CreateRelationModification.js +29 -44
  102. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  103. package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  104. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js +4 -7
  105. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  106. package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  107. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js +4 -7
  108. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  109. package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  110. package/dist/src/modifications/relations/MakeRelationNotNullModification.js +6 -9
  111. package/dist/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  112. package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  113. package/dist/src/modifications/relations/MakeRelationNullableModification.js +6 -9
  114. package/dist/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  115. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  116. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +4 -7
  117. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  118. package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  119. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js +3 -6
  120. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  121. package/dist/src/modifications/relations/index.d.ts +1 -0
  122. package/dist/src/modifications/relations/index.d.ts.map +1 -1
  123. package/dist/src/modifications/relations/index.js +1 -0
  124. package/dist/src/modifications/relations/index.js.map +1 -1
  125. package/dist/src/modifications/utils/diffUtils.js +5 -5
  126. package/dist/src/modifications/utils/diffUtils.js.map +1 -1
  127. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +5 -5
  128. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  129. package/dist/src/modifications/utils/schemaUpdateUtils.js +9 -9
  130. package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  131. package/dist/src/modifications/utils/viewDependencies.d.ts +5 -0
  132. package/dist/src/modifications/utils/viewDependencies.d.ts.map +1 -0
  133. package/dist/src/modifications/utils/viewDependencies.js +23 -0
  134. package/dist/src/modifications/utils/viewDependencies.js.map +1 -0
  135. package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  136. package/dist/src/modifications/validation/PatchValidationSchemaModification.js +2 -5
  137. package/dist/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  138. package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  139. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js +2 -5
  140. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  141. package/dist/src/tsconfig.tsbuildinfo +1 -1
  142. package/dist/tests/cases/integration/convertOneToManyRelation.test.d.ts +2 -0
  143. package/dist/tests/cases/integration/convertOneToManyRelation.test.d.ts.map +1 -0
  144. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +50 -0
  145. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -0
  146. package/dist/tests/cases/integration/createColumn.test.js +2 -2
  147. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  148. package/dist/tests/cases/integration/createEntity.test.js +12 -16
  149. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  150. package/dist/tests/cases/integration/createEnum.test.js +2 -2
  151. package/dist/tests/cases/integration/createEnum.test.js.map +1 -1
  152. package/dist/tests/cases/integration/createManyHasMany.test.js +2 -2
  153. package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
  154. package/dist/tests/cases/integration/createManyHasOne.test.js +2 -2
  155. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  156. package/dist/tests/cases/integration/createOneHasMany.test.js +2 -2
  157. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  158. package/dist/tests/cases/integration/createOneHasOne.test.js +5 -4
  159. package/dist/tests/cases/integration/createOneHasOne.test.js.map +1 -1
  160. package/dist/tests/cases/integration/createRelationInverseSide.test.js +4 -4
  161. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  162. package/dist/tests/cases/integration/disableOrphanRemoval.test.js +2 -2
  163. package/dist/tests/cases/integration/disableOrphanRemoval.test.js.map +1 -1
  164. package/dist/tests/cases/integration/enableOrphanRemoval.test.js +2 -2
  165. package/dist/tests/cases/integration/enableOrphanRemoval.test.js.map +1 -1
  166. package/dist/tests/cases/integration/makeColumnNotNull.test.js +2 -2
  167. package/dist/tests/cases/integration/makeColumnNotNull.test.js.map +1 -1
  168. package/dist/tests/cases/integration/makeRelationNotNull.test.js +2 -2
  169. package/dist/tests/cases/integration/makeRelationNotNull.test.js.map +1 -1
  170. package/dist/tests/cases/integration/makeRelationNullable.test.js +4 -4
  171. package/dist/tests/cases/integration/makeRelationNullable.test.js.map +1 -1
  172. package/dist/tests/cases/integration/patchAclSchema.test.js +2 -2
  173. package/dist/tests/cases/integration/patchAclSchema.test.js.map +1 -1
  174. package/dist/tests/cases/integration/removeEntity.test.js +6 -6
  175. package/dist/tests/cases/integration/removeEntity.test.js.map +1 -1
  176. package/dist/tests/cases/integration/removeEnum.test.js +2 -2
  177. package/dist/tests/cases/integration/removeEnum.test.js.map +1 -1
  178. package/dist/tests/cases/integration/removeField.test.js +10 -10
  179. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  180. package/dist/tests/cases/integration/updateColumnDefinition.test.js +2 -2
  181. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  182. package/dist/tests/cases/integration/updateEntityName.test.js +8 -8
  183. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  184. package/dist/tests/cases/integration/updateEnum.test.js +2 -2
  185. package/dist/tests/cases/integration/updateEnum.test.js.map +1 -1
  186. package/dist/tests/cases/integration/updateFieldName.test.js +8 -8
  187. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  188. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -2
  189. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  190. package/dist/tests/cases/integration/updateRelationOrderBy.test.js +2 -2
  191. package/dist/tests/cases/integration/updateRelationOrderBy.test.js.map +1 -1
  192. package/dist/tests/cases/integration/updateView.test.js +480 -20
  193. package/dist/tests/cases/integration/updateView.test.js.map +1 -1
  194. package/dist/tests/scripts/checkCreateConsistentMigrations.js +1 -1
  195. package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
  196. package/dist/tests/src/tests.js +2 -2
  197. package/dist/tests/src/tests.js.map +1 -1
  198. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  199. package/package.json +6 -6
  200. package/src/MigrationCreator.ts +0 -9
  201. package/src/MigrationFilesManager.ts +4 -4
  202. package/src/SchemaDiffer.ts +9 -4
  203. package/src/modifications/ModificationHandler.ts +1 -4
  204. package/src/modifications/ModificationHandlerFactory.ts +6 -1
  205. package/src/modifications/NoopModification.ts +0 -6
  206. package/src/modifications/acl/PatchAclSchemaModification.ts +0 -5
  207. package/src/modifications/acl/UpdateAclSchemaModification.ts +0 -5
  208. package/src/modifications/columns/CreateColumnModification.ts +2 -37
  209. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +0 -5
  210. package/src/modifications/columns/UpdateColumnNameModification.ts +0 -20
  211. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +0 -5
  212. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +0 -5
  213. package/src/modifications/differs/RemoveChangedViewDiffer.ts +42 -0
  214. package/src/modifications/differs/index.ts +1 -0
  215. package/src/modifications/entities/CreateEntityModification.ts +2 -4
  216. package/src/modifications/entities/CreateViewModification.ts +65 -0
  217. package/src/modifications/entities/RemoveEntityModification.ts +18 -14
  218. package/src/modifications/entities/UpdateEntityNameModification.ts +13 -14
  219. package/src/modifications/entities/UpdateEntityTableNameModification.ts +0 -11
  220. package/src/modifications/entities/UpdateViewModification.ts +0 -19
  221. package/src/modifications/entities/index.ts +1 -1
  222. package/src/modifications/enums/CreateEnumModification.ts +0 -6
  223. package/src/modifications/enums/RemoveEnumModification.ts +0 -5
  224. package/src/modifications/enums/UpdateEnumModification.ts +0 -5
  225. package/src/modifications/fields/RemoveFieldModification.ts +3 -46
  226. package/src/modifications/fields/UpdateFieldNameModification.ts +0 -5
  227. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +115 -0
  228. package/src/modifications/relations/CreateRelationInverseSideModification.ts +0 -5
  229. package/src/modifications/relations/CreateRelationModification.ts +25 -49
  230. package/src/modifications/relations/DisableOrphanRemovalModification.ts +0 -5
  231. package/src/modifications/relations/EnableOrphanRemovalModification.ts +0 -5
  232. package/src/modifications/relations/MakeRelationNotNullModification.ts +0 -5
  233. package/src/modifications/relations/MakeRelationNullableModification.ts +0 -5
  234. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +0 -5
  235. package/src/modifications/relations/UpdateRelationOrderByModification.ts +0 -5
  236. package/src/modifications/relations/index.ts +1 -0
  237. package/src/modifications/utils/schemaUpdateUtils.ts +6 -6
  238. package/src/modifications/utils/viewDependencies.ts +20 -0
  239. package/src/modifications/validation/PatchValidationSchemaModification.ts +0 -5
  240. package/src/modifications/validation/UpdateValidationSchemaModification.ts +0 -6
  241. package/tests/cases/integration/convertOneToManyRelation.test.ts +59 -0
  242. package/tests/cases/integration/createEntity.test.ts +8 -12
  243. package/tests/cases/integration/createOneHasOne.test.ts +3 -2
  244. package/tests/cases/integration/removeEntity.test.ts +2 -2
  245. package/tests/cases/integration/updateView.test.ts +430 -17
  246. package/dist/src/modifications/CreateModificationFieldVisitor.d.ts +0 -14
  247. package/dist/src/modifications/CreateModificationFieldVisitor.d.ts.map +0 -1
  248. package/dist/src/modifications/CreateModificationFieldVisitor.js +0 -61
  249. package/dist/src/modifications/CreateModificationFieldVisitor.js.map +0 -1
  250. package/src/modifications/CreateModificationFieldVisitor.ts +0 -96
@@ -1,10 +1,9 @@
1
1
  import { escapeValue, MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent, EventType } from '@contember/engine-common'
4
3
  import { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import { wrapIdentifier } from '../../utils/dbHelpers'
7
- import { getColumnName, isColumn, isInverseRelation, isRelation, resolveDefaultValue } from '@contember/schema-utils'
6
+ import { getColumnName, isColumn } from '@contember/schema-utils'
8
7
  import { ImplementationException } from '../../exceptions'
9
8
  import { createFields } from '../utils/diffUtils'
10
9
 
@@ -54,40 +53,6 @@ export const CreateColumnModification: ModificationHandlerStatic<CreateColumnMod
54
53
  return updateModel(updateEntity(this.data.entityName, addField(this.data.field)))
55
54
  }
56
55
 
57
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
58
- const entity = this.schema.model.entities[this.data.entityName]
59
-
60
- return events.map(it => {
61
- if (it.tableName !== entity.tableName || it.type !== EventType.create) {
62
- return it
63
- }
64
-
65
- try {
66
- let value: any = null
67
- if (this.data.fillValue !== undefined) {
68
- value = this.data.fillValue
69
- } else if (this.data.copyValue !== undefined) {
70
- const columnName = getColumnName(this.schema.model, entity, this.data.copyValue)
71
- value = it.values[columnName] !== undefined ? it.values[columnName] : null
72
- } else {
73
- value = resolveDefaultValue(this.data.field, { now: () => it.createdAt })
74
- }
75
- return {
76
- ...it,
77
- values: {
78
- ...it.values,
79
- [this.data.field.columnName]: value,
80
- },
81
- }
82
- } catch (e) {
83
- // if (e instanceof NoDataError) {
84
- // return {...it, errors: [...it.errors || []]}
85
- // }
86
- throw e
87
- }
88
- })
89
- }
90
-
91
56
  describe({ createdEntities }: { createdEntities: string[] }) {
92
57
  const notNull = !this.data.field.nullable
93
58
  const hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined
@@ -110,7 +75,7 @@ export const CreateColumnModification: ModificationHandlerStatic<CreateColumnMod
110
75
  return CreateColumnModification.createModification({
111
76
  entityName: updatedEntity.name,
112
77
  field: newField,
113
- ...(newField.default ? { fillValue: newField.default } : {}),
78
+ ...(newField.default !== undefined ? { fillValue: newField.default } : {}),
114
79
  })
115
80
  })
116
81
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import deepEqual from 'fast-deep-equal'
@@ -43,10 +42,6 @@ export const UpdateColumnDefinitionModification: ModificationHandlerStatic<Updat
43
42
  )
44
43
  }
45
44
 
46
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
47
- return events // todo transform type
48
- }
49
-
50
45
  describe() {
51
46
  const current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn
52
47
  const changingToNotNull = current.nullable && !this.data.definition.nullable
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent, EventType } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import { updateColumns } from '../utils/diffUtils'
@@ -27,25 +26,6 @@ export const UpdateColumnNameModification: ModificationHandlerStatic<UpdateColum
27
26
  )
28
27
  }
29
28
 
30
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
31
- const entity = this.schema.model.entities[this.data.entityName]
32
- const tableName = entity.tableName
33
- const oldColumnName = (entity.fields[this.data.fieldName] as Model.AnyColumn).columnName
34
- const newColumnName = this.data.columnName
35
- return events.map(it => {
36
- if (
37
- it.tableName !== tableName ||
38
- (it.type !== EventType.create && it.type !== EventType.update) ||
39
- !it.values.hasOwnProperty(oldColumnName)
40
- ) {
41
- return it
42
- }
43
-
44
- const { [oldColumnName]: value, ...values } = it.values
45
- return { ...it, values: { ...values, [newColumnName]: value } }
46
- })
47
- }
48
-
49
29
  describe() {
50
30
  return { message: `Change column name of field ${this.data.entityName}.${this.data.fieldName}` }
51
31
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import { acceptFieldVisitor } from '@contember/schema-utils'
@@ -58,10 +57,6 @@ export const CreateUniqueConstraintModification: ModificationHandlerStatic<Creat
58
57
  )
59
58
  }
60
59
 
61
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
62
- return events
63
- }
64
-
65
60
  describe({ createdEntities }: { createdEntities: string[] }) {
66
61
  return {
67
62
  message: `Create unique constraint (${this.data.unique.fields.join(', ')}) on entity ${this.data.entityName}`,
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import deepEqual from 'fast-deep-equal'
@@ -29,10 +28,6 @@ export const RemoveUniqueConstraintModification: ModificationHandlerStatic<Remov
29
28
  )
30
29
  }
31
30
 
32
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
33
- return events
34
- }
35
-
36
31
  describe() {
37
32
  const fields = this.schema.model.entities[this.data.entityName].unique[this.data.constraintName].fields
38
33
  return { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` }
@@ -0,0 +1,42 @@
1
+ import { Differ } from '../ModificationHandler'
2
+ import { Model, Schema } from '@contember/schema'
3
+ import deepEqual from 'fast-deep-equal'
4
+ import { RemoveEntityModification } from '../entities'
5
+ import { getViewDirectDependants } from '../utils/viewDependencies'
6
+ import { Migration } from '../../Migration'
7
+
8
+ export class RemoveChangedViewDiffer implements Differ {
9
+ constructor() {
10
+ }
11
+
12
+ createDiff(originalSchema: Schema, updatedSchema: Schema) {
13
+ const changedViews = Object.values(originalSchema.model.entities)
14
+ .filter(it => {
15
+ const updatedEntity = updatedSchema.model.entities[it.name]
16
+ if (!updatedEntity || !it.view || !updatedEntity.view) {
17
+ return false
18
+ }
19
+ return !deepEqual(updatedEntity.view, it.view)
20
+ })
21
+ if (changedViews.length === 0) {
22
+ return []
23
+ }
24
+ const removed = new Set<string>()
25
+ const dependants = getViewDirectDependants(originalSchema.model)
26
+ const modifications: Migration.Modification[] = []
27
+ const removeCascade = (entity: Model.Entity) => {
28
+ if (removed.has(entity.name)) {
29
+ return
30
+ }
31
+ removed.add(entity.name)
32
+ for (const dependant of dependants.get(entity.name) ?? []) {
33
+ removeCascade(dependant)
34
+ }
35
+ modifications.push(RemoveEntityModification.createModification({ entityName: entity.name }))
36
+ }
37
+ for (const changed of changedViews) {
38
+ removeCascade(changed)
39
+ }
40
+ return modifications
41
+ }
42
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './ChangeViewNonViewDiffer'
2
2
  export * from './RemoveChangedFieldDiffer'
3
+ export * from './RemoveChangedViewDiffer'
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import { createEventTrigger, createEventTrxTrigger } from '../utils/sqlUpdateUtils'
@@ -12,6 +11,7 @@ export const CreateEntityModification: ModificationHandlerStatic<CreateEntityMod
12
11
  public createSql(builder: MigrationBuilder): void {
13
12
  const entity = this.data.entity
14
13
  if (entity.view) {
14
+ // BC
15
15
  builder.createView(entity.tableName, {}, entity.view.sql)
16
16
  return
17
17
  }
@@ -37,9 +37,6 @@ export const CreateEntityModification: ModificationHandlerStatic<CreateEntityMod
37
37
  }))
38
38
  }
39
39
 
40
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
41
- return events
42
- }
43
40
 
44
41
  describe() {
45
42
  return { message: `Add entity ${this.data.entity.name}` }
@@ -52,6 +49,7 @@ export const CreateEntityModification: ModificationHandlerStatic<CreateEntityMod
52
49
  static createDiff(originalSchema: Schema, updatedSchema: Schema) {
53
50
  return Object.values(updatedSchema.model.entities)
54
51
  .filter(it => !originalSchema.model.entities[it.name])
52
+ .filter(it => !it.view)
55
53
  .map(entity =>
56
54
  CreateEntityModification.createModification({
57
55
  entity: {
@@ -0,0 +1,65 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations'
2
+ import { Model, Schema } from '@contember/schema'
3
+ import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
4
+ import { ModificationHandlerStatic } from '../ModificationHandler'
5
+ import { Migration } from '../../Migration'
6
+
7
+ export const CreateViewModification: ModificationHandlerStatic<CreateViewModificationData> = class {
8
+ static id = 'createView'
9
+ constructor(private readonly data: CreateViewModificationData, private readonly schema: Schema) {}
10
+
11
+ public createSql(builder: MigrationBuilder): void {
12
+ const entity = this.data.entity
13
+ if (!entity.view) {
14
+ throw new Error()
15
+ }
16
+ builder.createView(entity.tableName, {}, entity.view.sql)
17
+ }
18
+
19
+ public getSchemaUpdater(): SchemaUpdater {
20
+ return updateModel(({ model }) => ({
21
+ ...model,
22
+ entities: {
23
+ ...model.entities,
24
+ [this.data.entity.name]: this.data.entity,
25
+ },
26
+ }))
27
+ }
28
+
29
+
30
+ describe() {
31
+ return { message: `Add view ${this.data.entity.name}` }
32
+ }
33
+
34
+ static createModification(data: CreateViewModificationData) {
35
+ return { modification: this.id, ...data }
36
+ }
37
+
38
+ static createDiff(originalSchema: Schema, updatedSchema: Schema) {
39
+ const newViews = Object.values(updatedSchema.model.entities)
40
+ .filter(it => !originalSchema.model.entities[it.name])
41
+ .filter(it => !!it.view)
42
+ const created = new Set<string>()
43
+ const modifications: Migration.Modification[] = []
44
+ const cascadeCreate = (entity: Model.Entity) => {
45
+ if (originalSchema.model.entities[entity.name] || created.has(entity.name)) {
46
+ return
47
+ }
48
+ created.add(entity.name)
49
+ for (const dependency of entity.view?.dependencies ?? []) {
50
+ cascadeCreate(updatedSchema.model.entities[dependency])
51
+ }
52
+ modifications.push(CreateViewModification.createModification({
53
+ entity: entity,
54
+ }))
55
+ }
56
+ for (const view of newViews) {
57
+ cascadeCreate(view)
58
+ }
59
+ return modifications
60
+ }
61
+ }
62
+
63
+ export interface CreateViewModificationData {
64
+ entity: Model.Entity
65
+ }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
- import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
2
+ import { Acl, Schema } from '@contember/schema'
4
3
  import {
5
4
  removeField,
6
5
  SchemaUpdater,
@@ -15,6 +14,7 @@ import {
15
14
  import { ModificationHandlerStatic } from '../ModificationHandler'
16
15
  import { VERSION_ACL_PATCH, VERSION_REMOVE_REFERENCING_RELATIONS } from '../ModificationVersions'
17
16
  import { isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'
17
+ import { RemoveFieldModification } from '../fields'
18
18
 
19
19
  export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityModificationData> = class {
20
20
  static id = 'removeEntity'
@@ -30,7 +30,12 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
30
30
  builder.dropView(entity.tableName)
31
31
  return
32
32
  }
33
- builder.dropTable(entity.tableName, { cascade: true })
33
+ if (this.formatVersion >= VERSION_REMOVE_REFERENCING_RELATIONS) {
34
+ this.getFieldsToRemove(this.schema).forEach(([entityName, fieldName]) => {
35
+ (new RemoveFieldModification({ entityName, fieldName }, this.schema, this.formatVersion)).createSql(builder)
36
+ })
37
+ }
38
+ builder.dropTable(entity.tableName)
34
39
  }
35
40
 
36
41
  public getSchemaUpdater(): SchemaUpdater {
@@ -41,7 +46,9 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
41
46
  ({ role }) => ({
42
47
  ...role,
43
48
  variables: Object.fromEntries(
44
- Object.entries(role.variables).filter(([, variable]) => variable.entityName !== this.data.entityName),
49
+ Object.entries(role.variables).filter(([, variable]) =>
50
+ variable.type !== Acl.VariableType.entity || variable.entityName !== this.data.entityName,
51
+ ),
45
52
  ),
46
53
  }),
47
54
  updateAclEntities(({ entities }) => {
@@ -67,11 +74,7 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
67
74
  : undefined,
68
75
  this.formatVersion >= VERSION_REMOVE_REFERENCING_RELATIONS
69
76
  ? ({ schema }) => {
70
- const fieldsToRemove = Object.values(schema.model.entities).flatMap(entity =>
71
- Object.values(entity.fields)
72
- .filter(field => isRelation(field) && field.target === this.data.entityName)
73
- .map(field => [entity.name, field.name]),
74
- )
77
+ const fieldsToRemove = this.getFieldsToRemove(schema)
75
78
  return fieldsToRemove.reduce(
76
79
  (schema, [entity, field]) => removeField(entity, field, this.formatVersion)({ schema }),
77
80
  schema,
@@ -88,11 +91,12 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
88
91
  )
89
92
  }
90
93
 
91
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
92
- const entity = this.schema.model.entities[this.data.entityName]
93
- return events.filter(it => {
94
- return it.tableName !== entity.tableName
95
- })
94
+ private getFieldsToRemove(schema: Schema): [entity: string, field: string][] {
95
+ return Object.values(schema.model.entities).flatMap(entity =>
96
+ Object.values(entity.fields)
97
+ .filter(field => isRelation(field) && field.target === this.data.entityName)
98
+ .map((field): [string, string] => [entity.name, field.name]),
99
+ )
96
100
  }
97
101
 
98
102
  describe() {
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
- import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
2
+ import { Acl, Model, Schema } from '@contember/schema'
4
3
  import {
5
4
  SchemaUpdater,
6
5
  updateAcl,
@@ -83,13 +82,18 @@ export const UpdateEntityNameModification: ModificationHandlerStatic<UpdateEntit
83
82
  ({ role }) => ({
84
83
  ...role,
85
84
  variables: Object.fromEntries(
86
- Object.entries(role.variables).map(([key, variable]) => [
87
- key,
88
- {
89
- ...variable,
90
- entityName: changeValue(this.data.entityName, this.data.newEntityName)(variable.entityName),
91
- },
92
- ]),
85
+ Object.entries(role.variables).map(([key, variable]) => {
86
+ if (variable.type === Acl.VariableType.entity) {
87
+ return [
88
+ key,
89
+ {
90
+ ...variable,
91
+ entityName: changeValue(this.data.entityName, this.data.newEntityName)(variable.entityName),
92
+ },
93
+ ]
94
+ }
95
+ return [key, variable]
96
+ }),
93
97
  ),
94
98
  }),
95
99
  updateAclEntities(({ entities }) => {
@@ -108,11 +112,6 @@ export const UpdateEntityNameModification: ModificationHandlerStatic<UpdateEntit
108
112
  )
109
113
  }
110
114
 
111
- public async transformEvents(events: ContentEvent[]): Promise<ContentEvent[]> {
112
- events = await this.subModification.transformEvents(events)
113
- return events
114
- }
115
-
116
115
  private getNewConstraintName(constraint: Model.UniqueConstraint): string | null {
117
116
  const generatedName = NamingHelper.createUniqueConstraintName(this.data.entityName, constraint.fields)
118
117
  const isGenerated = constraint.name === generatedName
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
 
@@ -26,16 +25,6 @@ export const UpdateEntityTableNameModification: ModificationHandlerStatic<Update
26
25
  )
27
26
  }
28
27
 
29
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
30
- const entity = this.schema.model.entities[this.data.entityName]
31
- return events.map(it => {
32
- if (it.tableName !== entity.tableName) {
33
- return it
34
- }
35
- return { ...it, tableName: this.data.tableName }
36
- })
37
- }
38
-
39
28
  describe() {
40
29
  return { message: `Change table name of entity ${this.data.entityName}` }
41
30
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Model, Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { ModificationHandlerStatic } from '../ModificationHandler'
5
4
  import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
6
5
 
@@ -29,10 +28,6 @@ export const UpdateViewModification: ModificationHandlerStatic<UpdateViewModific
29
28
  )
30
29
  }
31
30
 
32
- public async transformEvents(events: ContentEvent[]): Promise<ContentEvent[]> {
33
- return events
34
- }
35
-
36
31
  describe() {
37
32
  return { message: `Update SQL definition of a view` }
38
33
  }
@@ -40,20 +35,6 @@ export const UpdateViewModification: ModificationHandlerStatic<UpdateViewModific
40
35
  static createModification(data: UpdateViewModificationData) {
41
36
  return { modification: this.id, ...data }
42
37
  }
43
-
44
- static createDiff(originalSchema: Schema, updatedSchema: Schema) {
45
- return Object.values(updatedSchema.model.entities)
46
- .filter((it): it is Model.Entity & Required<Pick<Model.Entity, 'view'>> => {
47
- const origView = originalSchema.model.entities[it.name]?.view
48
- return !!it.view?.sql && !!origView && origView?.sql !== it.view.sql
49
- })
50
- .map(it =>
51
- UpdateViewModification.createModification({
52
- entityName: it.name,
53
- view: it.view,
54
- }),
55
- )
56
- }
57
38
  }
58
39
 
59
40
  export interface UpdateViewModificationData {
@@ -1,5 +1,5 @@
1
1
  export * from './CreateEntityModification'
2
+ export * from './CreateViewModification'
2
3
  export * from './RemoveEntityModification'
3
4
  export * from './UpdateEntityNameModification'
4
5
  export * from './UpdateEntityTableNameModification'
5
- export * from './UpdateViewModification'
@@ -1,9 +1,7 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
- import { escapeSqlString } from '../../utils/escapeSqlString'
7
5
  import { createCheck, getConstraintName } from './enumUtils'
8
6
 
9
7
  export const CreateEnumModification: ModificationHandlerStatic<CreateEnumModificationData> = class {
@@ -27,10 +25,6 @@ export const CreateEnumModification: ModificationHandlerStatic<CreateEnumModific
27
25
  }))
28
26
  }
29
27
 
30
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
31
- return events
32
- }
33
-
34
28
  describe() {
35
29
  return { message: `Add enum ${this.data.enumName}` }
36
30
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
 
@@ -22,10 +21,6 @@ export const RemoveEnumModification: ModificationHandlerStatic<RemoveEnumModific
22
21
  })
23
22
  }
24
23
 
25
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
26
- return events
27
- }
28
-
29
24
  describe() {
30
25
  return { message: `Remove ${this.data.enumName}` }
31
26
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Schema } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
5
4
  import { ModificationHandlerStatic } from '../ModificationHandler'
6
5
  import deepEqual from 'fast-deep-equal'
@@ -29,10 +28,6 @@ export const UpdateEnumModification: ModificationHandlerStatic<UpdateEnumModific
29
28
  }))
30
29
  }
31
30
 
32
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
33
- return events
34
- }
35
-
36
31
  describe() {
37
32
  const currentValues = this.schema.model.enums[this.data.enumName]
38
33
  const missingValues = currentValues.filter(it => !this.data.values.includes(it))
@@ -1,30 +1,8 @@
1
- import {
2
- acceptFieldVisitor,
3
- isInverseRelation,
4
- isOwningRelation,
5
- isRelation,
6
- NamingHelper,
7
- PredicateDefinitionProcessor,
8
- tryGetColumnName,
9
- } from '@contember/schema-utils'
1
+ import { acceptFieldVisitor, isInverseRelation, isRelation, NamingHelper } from '@contember/schema-utils'
10
2
  import { MigrationBuilder } from '@contember/database-migrations'
11
- import { Model, Schema } from '@contember/schema'
12
- import { ContentEvent, EventType } from '@contember/engine-common'
13
- import {
14
- removeField,
15
- SchemaUpdater,
16
- updateAcl,
17
- updateAclEveryEntity,
18
- updateAclEveryPredicate,
19
- updateAclEveryRole,
20
- updateAclFieldPermissions,
21
- updateEntity,
22
- updateField,
23
- updateModel,
24
- updateSchema,
25
- } from '../utils/schemaUpdateUtils'
3
+ import { Schema } from '@contember/schema'
4
+ import { removeField, SchemaUpdater } from '../utils/schemaUpdateUtils'
26
5
  import { ModificationHandlerStatic } from '../ModificationHandler'
27
- import { VERSION_ACL_PATCH, VERSION_REMOVE_RELATION_INVERSE_SIDE } from '../ModificationVersions'
28
6
  import { isDefined } from '../../utils/isDefined'
29
7
 
30
8
  export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModificationData> = class {
@@ -64,27 +42,6 @@ export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModif
64
42
  return removeField(this.data.entityName, this.data.fieldName, this.formatVersion)
65
43
  }
66
44
 
67
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
68
- const entity = this.schema.model.entities[this.data.entityName]
69
- const tableName = entity.tableName
70
- const columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)
71
- if (!columnName) {
72
- return events
73
- }
74
- return events.map(it => {
75
- if (
76
- it.tableName !== tableName ||
77
- (it.type !== EventType.create && it.type !== EventType.update) ||
78
- !it.values.hasOwnProperty(columnName)
79
- ) {
80
- return it
81
- }
82
-
83
- const { [columnName]: value, ...values } = it.values
84
- return { ...it, values }
85
- })
86
- }
87
-
88
45
  describe() {
89
46
  return { message: `Remove field ${this.data.entityName}.${this.data.fieldName}`, isDestructive: true }
90
47
  }
@@ -1,6 +1,5 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations'
2
2
  import { Input, Model, Schema, Value } from '@contember/schema'
3
- import { ContentEvent } from '@contember/engine-common'
4
3
  import {
5
4
  SchemaUpdater,
6
5
  updateAcl,
@@ -158,10 +157,6 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
158
157
  )
159
158
  }
160
159
 
161
- public transformEvents(events: ContentEvent[]): ContentEvent[] {
162
- return events
163
- }
164
-
165
160
  private getNewConstraintName(constraint: Model.UniqueConstraint): string | null {
166
161
  const generatedName = NamingHelper.createUniqueConstraintName(this.data.entityName, constraint.fields)
167
162
  const isGenerated = constraint.name === generatedName