@contember/schema-migrations 1.3.0-alpha.7 → 1.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/src/MigrationDescriber.d.ts +4 -4
  2. package/dist/src/MigrationDescriber.d.ts.map +1 -1
  3. package/dist/src/MigrationDescriber.js +8 -7
  4. package/dist/src/MigrationDescriber.js.map +1 -1
  5. package/dist/src/SchemaDiffer.d.ts +1 -1
  6. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  7. package/dist/src/SchemaDiffer.js +10 -2
  8. package/dist/src/SchemaDiffer.js.map +1 -1
  9. package/dist/src/SchemaMigrator.d.ts +1 -2
  10. package/dist/src/SchemaMigrator.d.ts.map +1 -1
  11. package/dist/src/SchemaMigrator.js +0 -1
  12. package/dist/src/SchemaMigrator.js.map +1 -1
  13. package/dist/src/modifications/ModificationHandler.d.ts +10 -6
  14. package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
  15. package/dist/src/modifications/ModificationHandler.js.map +1 -1
  16. package/dist/src/modifications/ModificationHandlerFactory.d.ts +2 -2
  17. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  18. package/dist/src/modifications/ModificationHandlerFactory.js +3 -2
  19. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  20. package/dist/src/modifications/ModificationVersions.d.ts +4 -3
  21. package/dist/src/modifications/ModificationVersions.d.ts.map +1 -1
  22. package/dist/src/modifications/ModificationVersions.js +5 -4
  23. package/dist/src/modifications/ModificationVersions.js.map +1 -1
  24. package/dist/src/modifications/columns/CreateColumnModification.d.ts +2 -2
  25. package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  26. package/dist/src/modifications/columns/CreateColumnModification.js +14 -24
  27. package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
  28. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +5 -3
  29. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  30. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +19 -4
  31. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  32. package/dist/src/modifications/columns/columnUtils.d.ts +14 -0
  33. package/dist/src/modifications/columns/columnUtils.d.ts.map +1 -0
  34. package/dist/src/modifications/columns/columnUtils.js +29 -0
  35. package/dist/src/modifications/columns/columnUtils.js.map +1 -0
  36. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +3 -3
  37. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  38. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +20 -32
  39. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  40. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +11 -5
  41. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  42. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +37 -9
  43. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  44. package/dist/src/modifications/constraints/utils.d.ts +7 -0
  45. package/dist/src/modifications/constraints/utils.d.ts.map +1 -0
  46. package/dist/src/modifications/constraints/utils.js +33 -0
  47. package/dist/src/modifications/constraints/utils.js.map +1 -0
  48. package/dist/src/modifications/entities/CreateEntityModification.d.ts +4 -4
  49. package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  50. package/dist/src/modifications/entities/CreateEntityModification.js +18 -14
  51. package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
  52. package/dist/src/modifications/entities/CreateViewModification.d.ts +2 -2
  53. package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
  54. package/dist/src/modifications/entities/CreateViewModification.js +14 -10
  55. package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
  56. package/dist/src/modifications/entities/RemoveEntityModification.d.ts +3 -4
  57. package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  58. package/dist/src/modifications/entities/RemoveEntityModification.js +3 -2
  59. package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  60. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +2 -2
  61. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  62. package/dist/src/modifications/entities/ToggleEventLogModification.js +3 -3
  63. package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  64. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +4 -5
  65. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  66. package/dist/src/modifications/entities/UpdateEntityNameModification.js +3 -34
  67. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  68. package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  69. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +4 -5
  70. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  71. package/dist/src/modifications/fields/UpdateFieldNameModification.js +18 -42
  72. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  73. package/dist/src/modifications/indexes/CreateIndexModification.d.ts +5 -5
  74. package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  75. package/dist/src/modifications/indexes/CreateIndexModification.js +24 -35
  76. package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  77. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +12 -6
  78. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  79. package/dist/src/modifications/indexes/RemoveIndexModification.js +36 -10
  80. package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  81. package/dist/src/modifications/indexes/utils.d.ts +7 -0
  82. package/dist/src/modifications/indexes/utils.d.ts.map +1 -0
  83. package/dist/src/modifications/indexes/utils.js +33 -0
  84. package/dist/src/modifications/indexes/utils.js.map +1 -0
  85. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +3 -4
  86. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  87. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +10 -10
  88. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  89. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +3 -4
  90. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  91. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +14 -12
  92. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  93. package/dist/src/modifications/relations/CreateRelationModification.d.ts +4 -5
  94. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  95. package/dist/src/modifications/relations/CreateRelationModification.js +13 -17
  96. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  97. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +3 -4
  98. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  99. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +4 -5
  100. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  101. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +2 -2
  102. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  103. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +3 -3
  104. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  105. package/dist/src/modifications/relations/helpers.d.ts +4 -1
  106. package/dist/src/modifications/relations/helpers.d.ts.map +1 -1
  107. package/dist/src/modifications/relations/helpers.js +20 -17
  108. package/dist/src/modifications/relations/helpers.js.map +1 -1
  109. package/dist/src/modifications/relations/normalization.d.ts +2 -2
  110. package/dist/src/modifications/relations/normalization.d.ts.map +1 -1
  111. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts +1 -1
  112. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  113. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts +19 -0
  114. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -0
  115. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js +40 -0
  116. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -0
  117. package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -3
  118. package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
  119. package/dist/src/modifications/utils/createJunctionTable.js +4 -6
  120. package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
  121. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +12 -14
  122. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  123. package/dist/src/modifications/utils/schemaUpdateUtils.js +5 -20
  124. package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  125. package/dist/src/modifications/utils/stringArrayEquals.d.ts +2 -0
  126. package/dist/src/modifications/utils/stringArrayEquals.d.ts.map +1 -0
  127. package/dist/src/modifications/utils/stringArrayEquals.js +9 -0
  128. package/dist/src/modifications/utils/stringArrayEquals.js.map +1 -0
  129. package/dist/src/modifications/utils/viewDependencies.d.ts +1 -1
  130. package/dist/src/modifications/utils/viewDependencies.d.ts.map +1 -1
  131. package/dist/src/tsconfig.tsbuildinfo +1 -1
  132. package/dist/src/utils/PartialEntity.d.ts +5 -3
  133. package/dist/src/utils/PartialEntity.d.ts.map +1 -1
  134. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +1 -1
  135. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +5 -5
  136. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  137. package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
  138. package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
  139. package/dist/tests/cases/integration/createColumn.test.js +0 -2
  140. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  141. package/dist/tests/cases/integration/createEntity.test.js +6 -9
  142. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  143. package/dist/tests/cases/integration/createManyHasMany.test.js +3 -3
  144. package/dist/tests/cases/integration/createManyHasOne.test.js +4 -4
  145. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  146. package/dist/tests/cases/integration/createOneHasMany.test.js +6 -9
  147. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  148. package/dist/tests/cases/integration/createOneHasOne.test.js +6 -6
  149. package/dist/tests/cases/integration/createRelationInverseSide.test.js +1 -1
  150. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  151. package/dist/tests/cases/integration/createView.test.js +6 -6
  152. package/dist/tests/cases/integration/removeField.test.js +6 -6
  153. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  154. package/dist/tests/cases/integration/updateColumnDefinition.test.js +42 -4
  155. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  156. package/dist/tests/cases/integration/updateEntityName.test.js +1 -20
  157. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  158. package/dist/tests/cases/integration/updateFieldName.test.js +1 -21
  159. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  160. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -2
  161. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  162. package/dist/tests/cases/integration/updateView.test.js +18 -18
  163. package/dist/tests/scripts/checkCreateConsistentMigrations.js +1 -1
  164. package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
  165. package/dist/tests/src/tests.d.ts.map +1 -1
  166. package/dist/tests/src/tests.js +10 -4
  167. package/dist/tests/src/tests.js.map +1 -1
  168. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  169. package/package.json +8 -9
  170. package/src/MigrationDescriber.ts +11 -9
  171. package/src/SchemaDiffer.ts +12 -13
  172. package/src/SchemaMigrator.ts +1 -3
  173. package/src/modifications/ModificationHandler.ts +10 -5
  174. package/src/modifications/ModificationHandlerFactory.ts +12 -11
  175. package/src/modifications/ModificationVersions.ts +4 -3
  176. package/src/modifications/columns/CreateColumnModification.ts +19 -27
  177. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +22 -4
  178. package/src/modifications/columns/columnUtils.ts +35 -0
  179. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +31 -40
  180. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +60 -15
  181. package/src/modifications/constraints/utils.ts +36 -0
  182. package/src/modifications/entities/CreateEntityModification.ts +9 -8
  183. package/src/modifications/entities/CreateViewModification.ts +4 -3
  184. package/src/modifications/entities/RemoveEntityModification.ts +5 -5
  185. package/src/modifications/entities/ToggleEventLogModification.ts +4 -3
  186. package/src/modifications/entities/UpdateEntityNameModification.ts +10 -46
  187. package/src/modifications/fields/RemoveFieldModification.ts +1 -1
  188. package/src/modifications/fields/UpdateFieldNameModification.ts +30 -57
  189. package/src/modifications/indexes/CreateIndexModification.ts +35 -41
  190. package/src/modifications/indexes/RemoveIndexModification.ts +57 -17
  191. package/src/modifications/indexes/utils.ts +30 -0
  192. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -19
  193. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +21 -22
  194. package/src/modifications/relations/CreateRelationModification.ts +20 -35
  195. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +4 -5
  196. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +13 -5
  197. package/src/modifications/relations/helpers.ts +27 -22
  198. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +46 -0
  199. package/src/modifications/utils/createJunctionTable.ts +8 -8
  200. package/src/modifications/utils/schemaUpdateUtils.ts +5 -17
  201. package/src/modifications/utils/stringArrayEquals.ts +4 -0
  202. package/src/tsconfig.json +0 -1
  203. package/src/utils/PartialEntity.ts +7 -1
  204. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +1 -1
  205. package/tests/cases/integration/convertOneToManyRelation.test.ts +5 -5
  206. package/tests/cases/integration/createAndDropIndex.test.ts +4 -4
  207. package/tests/cases/integration/createColumn.test.ts +0 -2
  208. package/tests/cases/integration/createEntity.test.ts +6 -9
  209. package/tests/cases/integration/createManyHasMany.test.ts +3 -3
  210. package/tests/cases/integration/createManyHasOne.test.ts +4 -4
  211. package/tests/cases/integration/createOneHasMany.test.ts +6 -9
  212. package/tests/cases/integration/createOneHasOne.test.ts +6 -6
  213. package/tests/cases/integration/createRelationInverseSide.test.ts +1 -1
  214. package/tests/cases/integration/createView.test.ts +6 -6
  215. package/tests/cases/integration/removeField.test.ts +6 -6
  216. package/tests/cases/integration/updateColumnDefinition.test.ts +36 -4
  217. package/tests/cases/integration/updateEntityName.test.ts +1 -20
  218. package/tests/cases/integration/updateFieldName.test.ts +1 -21
  219. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -2
  220. package/tests/cases/integration/updateView.test.ts +18 -18
  221. package/tests/scripts/checkCreateConsistentMigrations.ts +1 -1
  222. package/tests/src/tests.ts +13 -8
  223. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts +0 -8
  224. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts.map +0 -1
  225. package/dist/src/modifications/utils/renameConstraintsHelper.js +0 -31
  226. package/dist/src/modifications/utils/renameConstraintsHelper.js.map +0 -1
  227. package/dist/src/modifications/utils/schemaMeta.d.ts +0 -8
  228. package/dist/src/modifications/utils/schemaMeta.d.ts.map +0 -1
  229. package/dist/src/modifications/utils/schemaMeta.js +0 -13
  230. package/dist/src/modifications/utils/schemaMeta.js.map +0 -1
  231. package/dist/tests/cases/integration/takenIndexName.test.d.ts +0 -2
  232. package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +0 -1
  233. package/dist/tests/cases/integration/takenIndexName.test.js +0 -307
  234. package/dist/tests/cases/integration/takenIndexName.test.js.map +0 -1
  235. package/src/modifications/utils/renameConstraintsHelper.ts +0 -34
  236. package/src/modifications/utils/schemaMeta.ts +0 -18
  237. package/tests/cases/integration/takenIndexName.test.ts +0 -314
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fillSeed = void 0;
4
+ const dbHelpers_1 = require("../../utils/dbHelpers");
5
+ const exceptions_1 = require("../../exceptions");
6
+ const database_migrations_1 = require("@contember/database-migrations");
7
+ const schema_utils_1 = require("@contember/schema-utils");
8
+ const fillSeed = ({ builder, fillValue, copyValue, entity, columnName, nullable, model, columnType, type }) => {
9
+ const where = type === 'updating' ? ` WHERE ${(0, dbHelpers_1.wrapIdentifier)(columnName)} IS NULL` : '';
10
+ if (fillValue !== undefined) {
11
+ builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
12
+ SET ${(0, dbHelpers_1.wrapIdentifier)(columnName)} = ${(0, database_migrations_1.escapeValue)(fillValue)}${where}`);
13
+ }
14
+ else if (copyValue !== undefined) {
15
+ const copyFrom = (0, schema_utils_1.getColumnName)(model, entity, copyValue);
16
+ builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
17
+ SET ${(0, dbHelpers_1.wrapIdentifier)(columnName)} = ${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}::${columnType}${where}`);
18
+ }
19
+ else {
20
+ throw new exceptions_1.ImplementationException();
21
+ }
22
+ if (!nullable) {
23
+ builder.alterColumn(entity.tableName, columnName, {
24
+ notNull: true,
25
+ });
26
+ }
27
+ };
28
+ exports.fillSeed = fillSeed;
29
+ //# sourceMappingURL=columnUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnUtils.js","sourceRoot":"","sources":["../../../../src/modifications/columns/columnUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAsD;AACtD,iDAA0D;AAE1D,wEAA8E;AAC9E,0DAAuD;AAEhD,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAU9G,EAAE,EAAE;IACJ,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,IAAA,0BAAc,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;2BAC7B,IAAA,0BAAc,EAAC,UAAU,CAAC,MAAM,IAAA,iCAAW,EAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;KAC1F;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;2BAC7B,IAAA,0BAAc,EAAC,UAAU,CAAC,MAAM,IAAA,0BAAc,EAAC,QAAQ,CAAC,KAAK,UAAU,GAAG,KAAK,EAAE,CAAC,CAAA;KAC3G;SAAM;QACN,MAAM,IAAI,oCAAuB,EAAE,CAAA;KACnC;IAED,IAAI,CAAC,QAAQ,EAAE;QACd,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE;YACjD,OAAO,EAAE,IAAI;SACb,CAAC,CAAA;KACF;AACF,CAAC,CAAA;AA5BY,QAAA,QAAQ,YA4BpB"}
@@ -1,12 +1,12 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations';
2
2
  import { Model, Schema } from '@contember/schema';
3
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
4
- import { Differ, ModificationHandler } from '../ModificationHandler';
4
+ import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler';
5
5
  export declare class CreateUniqueConstraintModificationHandler implements ModificationHandler<CreateUniqueConstraintModificationData> {
6
6
  private readonly data;
7
7
  private readonly schema;
8
8
  constructor(data: CreateUniqueConstraintModificationData, schema: Schema);
9
- createSql(builder: MigrationBuilder): void;
9
+ createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void;
10
10
  getSchemaUpdater(): SchemaUpdater;
11
11
  describe({ createdEntities }: {
12
12
  createdEntities: string[];
@@ -15,11 +15,11 @@ export declare class CreateUniqueConstraintModificationHandler implements Modifi
15
15
  failureWarning: string | undefined;
16
16
  };
17
17
  }
18
+ export declare const createUniqueConstraintModification: import("../ModificationHandler").ModificationType<"createUniqueConstraint", CreateUniqueConstraintModificationData>;
18
19
  export interface CreateUniqueConstraintModificationData {
19
20
  entityName: string;
20
21
  unique: Model.UniqueConstraint;
21
22
  }
22
- export declare const createUniqueConstraintModification: import("../ModificationHandler").ModificationType<"createUniqueConstraint", CreateUniqueConstraintModificationData>;
23
23
  export declare class CreateUniqueConstraintDiffer implements Differ {
24
24
  createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<CreateUniqueConstraintModificationData>[];
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUniqueConstraintModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/constraints/CreateUniqueConstraintModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAG5F,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAGnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAoC1C,gBAAgB,IAAI,aAAa;IAYxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;CAS3D;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAA;CAC9B;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAUxD"}
1
+ {"version":3,"file":"CreateUniqueConstraintModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/constraints/CreateUniqueConstraintModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,mCAAmC,EACnC,MAAM,wBAAwB,CAAA;AAK/B,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAGnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAoBjI,gBAAgB,IAAI,aAAa;IAYxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;CAS3D;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAA;CAC9B;AAED,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAUxD"}
@@ -1,54 +1,42 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.CreateUniqueConstraintDiffer = exports.createUniqueConstraintModification = exports.CreateUniqueConstraintModificationHandler = void 0;
4
7
  const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
5
8
  const ModificationHandler_1 = require("../ModificationHandler");
6
- const schema_utils_1 = require("@contember/schema-utils");
9
+ const dbHelpers_1 = require("../../utils/dbHelpers");
10
+ const utils_1 = require("./utils");
11
+ const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
7
12
  class CreateUniqueConstraintModificationHandler {
8
13
  constructor(data, schema) {
9
14
  this.data = data;
10
15
  this.schema = schema;
11
16
  }
12
- createSql(builder) {
17
+ createSql(builder, { databaseMetadata, invalidateDatabaseMetadata }) {
13
18
  const entity = this.schema.model.entities[this.data.entityName];
14
19
  if (entity.view) {
15
20
  return;
16
21
  }
17
22
  const fields = this.data.unique.fields;
18
- const columns = fields.map(fieldName => {
19
- return (0, schema_utils_1.acceptFieldVisitor)(this.schema.model, entity, fieldName, {
20
- visitColumn: ({ column }) => {
21
- return column.columnName;
22
- },
23
- visitManyHasOne: ({ relation }) => {
24
- return relation.joiningColumn.columnName;
25
- },
26
- visitOneHasMany: () => {
27
- throw new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`);
28
- },
29
- visitOneHasOneOwning: () => {
30
- throw new Error(`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`);
31
- },
32
- visitOneHasOneInverse: () => {
33
- throw new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`);
34
- },
35
- visitManyHasManyOwning: () => {
36
- throw new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`);
37
- },
38
- visitManyHasManyInverse: () => {
39
- throw new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`);
40
- },
41
- });
23
+ const columns = (0, utils_1.getUniqueConstraintColumns)({
24
+ entity,
25
+ model: this.schema.model,
26
+ fields,
42
27
  });
43
- builder.addConstraint(entity.tableName, this.data.unique.name, { unique: columns });
28
+ const tableNameId = (0, dbHelpers_1.wrapIdentifier)(entity.tableName);
29
+ const columnNameIds = columns.map(dbHelpers_1.wrapIdentifier);
30
+ builder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})`);
31
+ invalidateDatabaseMetadata();
44
32
  }
45
33
  getSchemaUpdater() {
46
34
  return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => ({
47
35
  ...entity,
48
- unique: {
36
+ unique: [
49
37
  ...entity.unique,
50
- [this.data.unique.name]: this.data.unique,
51
- },
38
+ this.data.unique,
39
+ ],
52
40
  })));
53
41
  }
54
42
  describe({ createdEntities }) {
@@ -67,8 +55,8 @@ exports.createUniqueConstraintModification = (0, ModificationHandler_1.createMod
67
55
  });
68
56
  class CreateUniqueConstraintDiffer {
69
57
  createDiff(originalSchema, updatedSchema) {
70
- return Object.values(updatedSchema.model.entities).flatMap(entity => Object.values(entity.unique)
71
- .filter(it => !originalSchema.model.entities[entity.name].unique[it.name])
58
+ return Object.values(updatedSchema.model.entities).flatMap(entity => entity.unique
59
+ .filter(it => !originalSchema.model.entities[entity.name].unique.find(uniq => (0, fast_deep_equal_1.default)(uniq.fields, it.fields)))
72
60
  .map(unique => exports.createUniqueConstraintModification.createModification({
73
61
  entityName: entity.name,
74
62
  unique,
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUniqueConstraintModification.js","sourceRoot":"","sources":["../../../../src/modifications/constraints/CreateUniqueConstraintModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateUniqueConstraintModification.js","sourceRoot":"","sources":["../../../../src/modifications/constraints/CreateUniqueConstraintModification.ts"],"names":[],"mappings":";;;;;;AAEA,kEAAqF;AACrF,gEAK+B;AAC/B,qDAAsD;AACtD,mCAAoD;AACpD,sEAAuC;AAEvC,MAAa,yCAAyC;IACrD,YAA6B,IAA4C,EAAmB,MAAc;QAA7E,SAAI,GAAJ,IAAI,CAAwC;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAC1G,CAAC;IAEM,SAAS,CAAC,OAAyB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAuC;QAChI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,MAAM,CAAC,IAAI,EAAE;YAChB,OAAM;SACN;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QACtC,MAAM,OAAO,GAAG,IAAA,kCAA0B,EAAC;YAC1C,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,MAAM;SACN,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAA;QAEjD,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,gBAAgB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAElF,0BAA0B,EAAE,CAAA;IAC7B,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAA,+BAAW,EACjB,IAAA,gCAAY,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,MAAM;YACT,MAAM,EAAE;gBACP,GAAG,MAAM,CAAC,MAAM;gBAChB,IAAI,CAAC,IAAI,CAAC,MAAM;aAChB;SACD,CAAC,CAAC,CACH,CAAA;IACF,CAAC;IAED,QAAQ,CAAC,EAAE,eAAe,EAAiC;QAC1D,OAAO;YACN,OAAO,EAAE,6BAA6B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7G,cAAc,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9D,CAAC,CAAC,2EAA2E;gBAC7E,CAAC,CAAC,SAAS;SACZ,CAAA;IACF,CAAC;CAED;AA7CD,8FA6CC;AAEY,QAAA,kCAAkC,GAAG,IAAA,4CAAsB,EAAC;IACxE,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,yCAAyC;CAClD,CAAC,CAAA;AAOF,MAAa,4BAA4B;IACxC,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACnE,MAAM,CAAC,MAAM;aACX,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aAChH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAkC,CAAC,kBAAkB,CAAC;YACpE,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,MAAM;SACN,CAAC,CAAC,CACJ,CAAA;IACF,CAAC;CACD;AAXD,oEAWC"}
@@ -1,22 +1,28 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations';
2
2
  import { Schema } from '@contember/schema';
3
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
4
- import { Differ, ModificationHandler } from '../ModificationHandler';
4
+ import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler';
5
5
  export declare class RemoveUniqueConstraintModificationHandler implements ModificationHandler<RemoveUniqueConstraintModificationData> {
6
6
  private readonly data;
7
7
  private readonly schema;
8
8
  constructor(data: RemoveUniqueConstraintModificationData, schema: Schema);
9
- createSql(builder: MigrationBuilder): void;
9
+ createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void;
10
10
  getSchemaUpdater(): SchemaUpdater;
11
11
  describe(): {
12
12
  message: string;
13
13
  };
14
+ getFields(): readonly string[];
14
15
  }
15
- export interface RemoveUniqueConstraintModificationData {
16
+ export declare const removeUniqueConstraintModification: import("../ModificationHandler").ModificationType<"removeUniqueConstraint", RemoveUniqueConstraintModificationData>;
17
+ export type RemoveUniqueConstraintModificationData = {
16
18
  entityName: string;
17
19
  constraintName: string;
18
- }
19
- export declare const removeUniqueConstraintModification: import("../ModificationHandler").ModificationType<"removeUniqueConstraint", RemoveUniqueConstraintModificationData>;
20
+ fields?: never;
21
+ } | {
22
+ entityName: string;
23
+ fields: readonly string[];
24
+ constraintName?: never;
25
+ };
20
26
  export declare class RemoveUniqueConstraintDiffer implements Differ {
21
27
  createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<RemoveUniqueConstraintModificationData>[];
22
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveUniqueConstraintModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAG5F,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAGnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAQ1C,gBAAgB,IAAI,aAAa;IAYxC,QAAQ;;;CAIR;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAGF,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAiBxD"}
1
+ {"version":3,"file":"RemoveUniqueConstraintModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,mCAAmC,EACnC,MAAM,wBAAwB,CAAA;AAK/B,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAGnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAuBjI,gBAAgB,IAAI,aAAa;IAaxC,QAAQ;;;IAKR,SAAS;CAWT;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,MAAM,MAAM,sCAAsC,GAC/C;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,KAAK,CAAA;CACd,GACC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,cAAc,CAAC,EAAE,KAAK,CAAA;CACtB,CAAA;AAGF,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAoBxD"}
@@ -7,21 +7,34 @@ exports.RemoveUniqueConstraintDiffer = exports.removeUniqueConstraintModificatio
7
7
  const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
8
8
  const ModificationHandler_1 = require("../ModificationHandler");
9
9
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
10
+ const utils_1 = require("./utils");
11
+ const dbHelpers_1 = require("../../utils/dbHelpers");
10
12
  class RemoveUniqueConstraintModificationHandler {
11
13
  constructor(data, schema) {
12
14
  this.data = data;
13
15
  this.schema = schema;
14
16
  }
15
- createSql(builder) {
17
+ createSql(builder, { databaseMetadata, invalidateDatabaseMetadata }) {
16
18
  const entity = this.schema.model.entities[this.data.entityName];
17
19
  if (entity.view) {
18
20
  return;
19
21
  }
20
- builder.dropConstraint(entity.tableName, this.data.constraintName);
22
+ const fields = this.getFields();
23
+ const columns = (0, utils_1.getUniqueConstraintColumns)({
24
+ entity,
25
+ fields: fields,
26
+ model: this.schema.model,
27
+ });
28
+ const constraintNames = databaseMetadata.getUniqueConstraintNames({ tableName: entity.tableName, columnNames: columns });
29
+ for (const name of constraintNames) {
30
+ builder.sql(`ALTER TABLE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, dbHelpers_1.wrapIdentifier)(name)}`);
31
+ }
32
+ invalidateDatabaseMetadata();
21
33
  }
22
34
  getSchemaUpdater() {
35
+ const fields = this.getFields();
23
36
  return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => {
24
- const { [this.data.constraintName]: removed, ...unique } = entity.unique;
37
+ const unique = entity.unique.filter(it => !(0, fast_deep_equal_1.default)(it.fields, fields));
25
38
  return {
26
39
  ...entity,
27
40
  unique,
@@ -29,9 +42,20 @@ class RemoveUniqueConstraintModificationHandler {
29
42
  }));
30
43
  }
31
44
  describe() {
32
- const fields = this.schema.model.entities[this.data.entityName].unique[this.data.constraintName].fields;
45
+ const fields = this.getFields();
33
46
  return { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` };
34
47
  }
48
+ getFields() {
49
+ var _a;
50
+ const entity = this.schema.model.entities[this.data.entityName];
51
+ const fields = 'constraintName' in this.data
52
+ ? (_a = entity.unique.find(it => it.name === this.data.constraintName)) === null || _a === void 0 ? void 0 : _a.fields
53
+ : this.data.fields;
54
+ if (!fields) {
55
+ throw new Error();
56
+ }
57
+ return fields;
58
+ }
35
59
  }
36
60
  exports.RemoveUniqueConstraintModificationHandler = RemoveUniqueConstraintModificationHandler;
37
61
  exports.removeUniqueConstraintModification = (0, ModificationHandler_1.createModificationType)({
@@ -40,13 +64,17 @@ exports.removeUniqueConstraintModification = (0, ModificationHandler_1.createMod
40
64
  });
41
65
  class RemoveUniqueConstraintDiffer {
42
66
  createDiff(originalSchema, updatedSchema) {
43
- return Object.values(originalSchema.model.entities).flatMap(entity => Object.values(entity.unique)
44
- .filter(it => updatedSchema.model.entities[entity.name] &&
45
- (!updatedSchema.model.entities[entity.name].unique[it.name] ||
46
- !(0, fast_deep_equal_1.default)(it.fields, updatedSchema.model.entities[entity.name].unique[it.name].fields)))
67
+ return Object.values(originalSchema.model.entities).flatMap(entity => entity.unique
68
+ .filter(it => {
69
+ const updatedEntity = updatedSchema.model.entities[entity.name];
70
+ if (!updatedEntity) {
71
+ return false;
72
+ }
73
+ return !updatedEntity.unique.find(uniq => (0, fast_deep_equal_1.default)(uniq.fields, it.fields));
74
+ })
47
75
  .map(unique => exports.removeUniqueConstraintModification.createModification({
48
76
  entityName: entity.name,
49
- constraintName: unique.name,
77
+ fields: unique.fields,
50
78
  })));
51
79
  }
52
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveUniqueConstraintModification.js","sourceRoot":"","sources":["../../../../src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"names":[],"mappings":";;;;;;AAEA,kEAAqF;AACrF,gEAA4F;AAC5F,sEAAuC;AAEvC,MAAa,yCAAyC;IACrD,YAA6B,IAA4C,EAAmB,MAAc;QAA7E,SAAI,GAAJ,IAAI,CAAwC;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAC1G,CAAC;IAEM,SAAS,CAAC,OAAyB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,MAAM,CAAC,IAAI,EAAE;YAChB,OAAM;SACN;QACD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACnE,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAA,+BAAW,EACjB,IAAA,gCAAY,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACjD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAA;YACxE,OAAO;gBACN,GAAG,MAAM;gBACT,MAAM;aACN,CAAA;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAED,QAAQ;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;QACvG,OAAO,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAA;IACxG,CAAC;CACD;AA5BD,8FA4BC;AAOY,QAAA,kCAAkC,GAAG,IAAA,4CAAsB,EAAC;IACxE,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,yCAAyC;CAClD,CAAC,CAAA;AAGF,MAAa,4BAA4B;IACxC,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACpE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAC1B,MAAM,CACN,EAAE,CAAC,EAAE,CACJ,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC1D,CAAC,IAAA,yBAAS,EAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAC1F;aACA,GAAG,CAAC,MAAM,CAAC,EAAE,CACb,0CAAkC,CAAC,kBAAkB,CAAC;YACrD,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,cAAc,EAAE,MAAM,CAAC,IAAI;SAC3B,CAAC,CACF,CACF,CAAA;IACF,CAAC;CACD;AAlBD,oEAkBC"}
1
+ {"version":3,"file":"RemoveUniqueConstraintModification.js","sourceRoot":"","sources":["../../../../src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Model } from '@contember/schema';
2
+ export declare const getUniqueConstraintColumns: ({ entity, fields, model }: {
3
+ fields: readonly string[];
4
+ model: Model.Schema;
5
+ entity: Model.Entity;
6
+ }) => string[];
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/modifications/constraints/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,eAAO,MAAM,0BAA0B;YAC9B,SAAS,MAAM,EAAE;WAClB,MAAM,MAAM;YACX,MAAM,MAAM;cA6BpB,CAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUniqueConstraintColumns = void 0;
4
+ const schema_utils_1 = require("@contember/schema-utils");
5
+ const getUniqueConstraintColumns = ({ entity, fields, model }) => {
6
+ return fields.map(fieldName => {
7
+ return (0, schema_utils_1.acceptFieldVisitor)(model, entity, fieldName, {
8
+ visitColumn: ({ column }) => {
9
+ return column.columnName;
10
+ },
11
+ visitManyHasOne: ({ relation }) => {
12
+ return relation.joiningColumn.columnName;
13
+ },
14
+ visitOneHasMany: () => {
15
+ throw new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`);
16
+ },
17
+ visitOneHasOneOwning: () => {
18
+ throw new Error(`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`);
19
+ },
20
+ visitOneHasOneInverse: () => {
21
+ throw new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`);
22
+ },
23
+ visitManyHasManyOwning: () => {
24
+ throw new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`);
25
+ },
26
+ visitManyHasManyInverse: () => {
27
+ throw new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`);
28
+ },
29
+ });
30
+ });
31
+ };
32
+ exports.getUniqueConstraintColumns = getUniqueConstraintColumns;
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/modifications/constraints/utils.ts"],"names":[],"mappings":";;;AAAA,0DAA4D;AAGrD,MAAM,0BAA0B,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAIjE,EAAE,EAAE;IACJ,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,IAAA,iCAAkB,EAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;YACnD,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC3B,OAAO,MAAM,CAAC,UAAU,CAAA;YACzB,CAAC;YACD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACjC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAA;YACzC,CAAC;YACD,eAAe,EAAE,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YAC3F,CAAC;YACD,oBAAoB,EAAE,GAAG,EAAE;gBAC1B,MAAM,IAAI,KAAK,CACd,wFAAwF,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAClH,CAAA;YACF,CAAC;YACD,qBAAqB,EAAE,GAAG,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,uDAAuD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YACnG,CAAC;YACD,sBAAsB,EAAE,GAAG,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YAC3F,CAAC;YACD,uBAAuB,EAAE,GAAG,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,uDAAuD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YACnG,CAAC;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAhCY,QAAA,0BAA0B,8BAgCtC"}
@@ -1,14 +1,14 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations';
2
2
  import { Schema } from '@contember/schema';
3
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
4
- import { Differ, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler';
5
- import { PartialEntity } from '../../utils/PartialEntity.js';
4
+ import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
5
+ import { PossibleEntityShapeInMigrations } from '../../utils/PartialEntity.js';
6
6
  export declare class CreateEntityModificationHandler implements ModificationHandler<CreateEntityModificationData> {
7
7
  private readonly data;
8
8
  private readonly schema;
9
9
  private readonly options;
10
10
  constructor(data: CreateEntityModificationData, schema: Schema, options: ModificationHandlerOptions);
11
- createSql(builder: MigrationBuilder): void;
11
+ createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void;
12
12
  getSchemaUpdater(): SchemaUpdater;
13
13
  describe(): {
14
14
  message: string;
@@ -19,6 +19,6 @@ export declare class CreateEntityDiffer implements Differ {
19
19
  createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<CreateEntityModificationData>[];
20
20
  }
21
21
  export interface CreateEntityModificationData {
22
- entity: PartialEntity;
22
+ entity: PossibleEntityShapeInMigrations;
23
23
  }
24
24
  //# sourceMappingURL=CreateEntityModification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEntityModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateEntityModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAG5D,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAEvG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,IAAI,EAAE,4BAA4B,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAG9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAwB1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;CAIR;AAED,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAgBxD;AAED,MAAM,WAAW,4BAA4B;IAC5C,MAAM,EAAE,aAAa,CAAA;CACrB"}
1
+ {"version":3,"file":"CreateEntityModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateEntityModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAEN,MAAM,EACN,mBAAmB,EAAE,mCAAmC,EACxD,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAG9E,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAEvG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,IAAI,EAAE,4BAA4B,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAG9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAwBjG,gBAAgB,IAAI,aAAa;IAgBxC,QAAQ;;;CAIR;AAED,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAgBxD;AAED,MAAM,WAAW,4BAA4B;IAC5C,MAAM,EAAE,+BAA+B,CAAA;CACvC"}
@@ -11,7 +11,7 @@ class CreateEntityModificationHandler {
11
11
  this.schema = schema;
12
12
  this.options = options;
13
13
  }
14
- createSql(builder) {
14
+ createSql(builder, { systemSchema }) {
15
15
  var _a;
16
16
  const entity = this.data.entity;
17
17
  if (entity.view) {
@@ -29,22 +29,26 @@ class CreateEntityModificationHandler {
29
29
  },
30
30
  });
31
31
  if (((_a = entity.eventLog) === null || _a === void 0 ? void 0 : _a.enabled) !== false) {
32
- (0, sqlUpdateUtils_1.createEventTrigger)(builder, this.options.systemSchema, entity.tableName, [entity.primaryColumn]);
33
- (0, sqlUpdateUtils_1.createEventTrxTrigger)(builder, this.options.systemSchema, entity.tableName);
32
+ (0, sqlUpdateUtils_1.createEventTrigger)(builder, systemSchema, entity.tableName, [entity.primaryColumn]);
33
+ (0, sqlUpdateUtils_1.createEventTrxTrigger)(builder, systemSchema, entity.tableName);
34
34
  }
35
35
  }
36
36
  getSchemaUpdater() {
37
- return (0, schemaUpdateUtils_1.updateModel)(({ model }) => ({
38
- ...model,
39
- entities: {
40
- ...model.entities,
41
- [this.data.entity.name]: {
42
- eventLog: { enabled: true },
43
- indexes: {},
44
- ...this.data.entity,
37
+ return (0, schemaUpdateUtils_1.updateModel)(({ model }) => {
38
+ var _a;
39
+ return ({
40
+ ...model,
41
+ entities: {
42
+ ...model.entities,
43
+ [this.data.entity.name]: {
44
+ eventLog: { enabled: true },
45
+ ...this.data.entity,
46
+ unique: Object.values(this.data.entity.unique),
47
+ indexes: Object.values((_a = this.data.entity.indexes) !== null && _a !== void 0 ? _a : []),
48
+ },
45
49
  },
46
- },
47
- }));
50
+ });
51
+ });
48
52
  }
49
53
  describe() {
50
54
  return { message: `Add entity ${this.data.entity.name}` };
@@ -66,7 +70,7 @@ class CreateEntityDiffer {
66
70
  fields: {
67
71
  [entity.primary]: entity.fields[entity.primary],
68
72
  },
69
- unique: {},
73
+ unique: [],
70
74
  },
71
75
  }));
72
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEntityModification.js","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateEntityModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateEntityModification.js","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateEntityModification.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Schema } from '@contember/schema';
3
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
4
4
  import { Differ, ModificationHandler } from '../ModificationHandler';
5
5
  import { Migration } from '../../Migration';
6
- import { PartialEntity } from '../../utils/PartialEntity.js';
6
+ import { PossibleEntityShapeInMigrations } from '../../utils/PartialEntity.js';
7
7
  export declare class CreateViewModificationHandler implements ModificationHandler<CreateViewModificationData> {
8
8
  private readonly data;
9
9
  private readonly schema;
@@ -21,6 +21,6 @@ export declare class CreateViewDiffer implements Differ {
21
21
  }>[];
22
22
  }
23
23
  export interface CreateViewModificationData {
24
- entity: PartialEntity;
24
+ entity: PossibleEntityShapeInMigrations;
25
25
  }
26
26
  //# sourceMappingURL=CreateViewModification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateViewModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateViewModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,qBAAa,6BAA8B,YAAW,mBAAmB,CAAC,0BAA0B,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA8B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAzD,IAAI,EAAE,0BAA0B,EAAmB,MAAM,EAAE,MAAM;IAEvF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAQ1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;CAGR;AAED,eAAO,MAAM,sBAAsB,6FAGjC,CAAA;AAEF,qBAAa,gBAAiB,YAAW,MAAM;IAC9C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAuBxD;AAED,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,aAAa,CAAA;CACrB"}
1
+ {"version":3,"file":"CreateViewModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateViewModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAE9E,qBAAa,6BAA8B,YAAW,mBAAmB,CAAC,0BAA0B,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA8B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAzD,IAAI,EAAE,0BAA0B,EAAmB,MAAM,EAAE,MAAM;IAEvF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAQ1C,gBAAgB,IAAI,aAAa;IAgBxC,QAAQ;;;CAGR;AAED,eAAO,MAAM,sBAAsB,6FAGjC,CAAA;AAEF,qBAAa,gBAAiB,YAAW,MAAM;IAC9C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAuBxD;AAED,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,+BAA+B,CAAA;CACvC"}
@@ -16,17 +16,21 @@ class CreateViewModificationHandler {
16
16
  builder.createView(entity.tableName, {}, entity.view.sql);
17
17
  }
18
18
  getSchemaUpdater() {
19
- return (0, schemaUpdateUtils_1.updateModel)(({ model }) => ({
20
- ...model,
21
- entities: {
22
- ...model.entities,
23
- [this.data.entity.name]: {
24
- indexes: {},
25
- eventLog: { enabled: true },
26
- ...this.data.entity,
19
+ return (0, schemaUpdateUtils_1.updateModel)(({ model }) => {
20
+ var _a;
21
+ return ({
22
+ ...model,
23
+ entities: {
24
+ ...model.entities,
25
+ [this.data.entity.name]: {
26
+ eventLog: { enabled: true },
27
+ ...this.data.entity,
28
+ unique: Object.values(this.data.entity.unique),
29
+ indexes: Object.values((_a = this.data.entity.indexes) !== null && _a !== void 0 ? _a : []),
30
+ },
27
31
  },
28
- },
29
- }));
32
+ });
33
+ });
30
34
  }
31
35
  describe() {
32
36
  return { message: `Add view ${this.data.entity.name}` };
@@ -1 +1 @@
1
- {"version":3,"file":"CreateViewModification.js","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateViewModification.ts"],"names":[],"mappings":";;;AAEA,kEAAuE;AACvE,gEAA4F;AAI5F,MAAa,6BAA6B;IACzC,YAA6B,IAAgC,EAAmB,MAAc;QAAjE,SAAI,GAAJ,IAAI,CAA4B;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE3F,SAAS,CAAC,OAAyB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QACD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAA,+BAAW,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,GAAG,KAAK;YACR,QAAQ,EAAE;gBACT,GAAG,KAAK,CAAC,QAAQ;gBACjB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC3B,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;iBACnB;aACD;SACD,CAAC,CAAC,CAAA;IACJ,CAAC;IAGD,QAAQ;QACP,OAAO,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;IACxD,CAAC;CACD;AA7BD,sEA6BC;AAEY,QAAA,sBAAsB,GAAG,IAAA,4CAAsB,EAAC;IAC5D,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,6BAA6B;CACtC,CAAC,CAAA;AAEF,MAAa,gBAAgB;IAC5B,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC1D,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aACrD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,MAAM,aAAa,GAA6B,EAAE,CAAA;QAClD,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAE,EAAE;;YAC9C,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC3E,OAAM;aACN;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,KAAK,MAAM,UAAU,IAAI,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,YAAY,mCAAI,EAAE,EAAE;gBACzD,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;aACvD;YACD,aAAa,CAAC,IAAI,CAAC,8BAAsB,CAAC,kBAAkB,CAAC;gBAC5D,MAAM,EAAE,MAAM;aACd,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,CAAA;SACnB;QACD,OAAO,aAAa,CAAA;IACrB,CAAC;CACD;AAxBD,4CAwBC"}
1
+ {"version":3,"file":"CreateViewModification.js","sourceRoot":"","sources":["../../../../src/modifications/entities/CreateViewModification.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations';
2
2
  import { Schema } from '@contember/schema';
3
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
4
- import { Differ, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler';
5
- import { SchemaWithMeta } from '../utils/schemaMeta';
4
+ import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
6
5
  export declare class RemoveEntityModificationHandler implements ModificationHandler<RemoveEntityModificationData> {
7
6
  private readonly data;
8
7
  private readonly schema;
9
8
  private readonly options;
10
- constructor(data: RemoveEntityModificationData, schema: SchemaWithMeta, options: ModificationHandlerOptions);
11
- createSql(builder: MigrationBuilder): void;
9
+ constructor(data: RemoveEntityModificationData, schema: Schema, options: ModificationHandlerOptions);
10
+ createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void;
12
11
  getSchemaUpdater(): SchemaUpdater;
13
12
  private getFieldsToRemove;
14
13
  describe(): {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveEntityModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/RemoveEntityModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAEN,aAAa,EAQb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAEvG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,IAAI,EAAE,4BAA4B,EAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,0BAA0B;IAG9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAc1C,gBAAgB,IAAI,aAAa;IAqDxC,OAAO,CAAC,iBAAiB;IAQzB,QAAQ;;;;CAIR;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAKxD"}
1
+ {"version":3,"file":"RemoveEntityModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/RemoveEntityModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAEN,aAAa,EAQb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEN,MAAM,EACN,mBAAmB,EAAE,mCAAmC,EACxD,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAK/B,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAEvG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,IAAI,EAAE,4BAA4B,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAG9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,mCAAmC,GAAG,IAAI;IAexF,gBAAgB,IAAI,aAAa;IAqDxC,OAAO,CAAC,iBAAiB;IAQzB,QAAQ;;;;CAIR;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAKxD"}
@@ -13,7 +13,7 @@ class RemoveEntityModificationHandler {
13
13
  this.schema = schema;
14
14
  this.options = options;
15
15
  }
16
- createSql(builder) {
16
+ createSql(builder, options) {
17
17
  const entity = this.schema.model.entities[this.data.entityName];
18
18
  if (entity.view) {
19
19
  builder.dropView(entity.tableName);
@@ -21,7 +21,8 @@ class RemoveEntityModificationHandler {
21
21
  }
22
22
  if (this.options.formatVersion >= ModificationVersions_1.VERSION_REMOVE_REFERENCING_RELATIONS) {
23
23
  this.getFieldsToRemove(this.schema).forEach(([entityName, fieldName]) => {
24
- fields_1.removeFieldModification.createHandler({ entityName, fieldName }, this.schema, this.options).createSql(builder);
24
+ const removeFieldHandler = fields_1.removeFieldModification.createHandler({ entityName, fieldName }, this.schema, this.options);
25
+ removeFieldHandler.createSql(builder, options);
25
26
  });
26
27
  }
27
28
  builder.dropTable(entity.tableName);