@contember/schema-migrations 1.2.1 → 1.3.0-alpha.13

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 (285) hide show
  1. package/dist/src/MigrationCreator.js +2 -2
  2. package/dist/src/MigrationCreator.js.map +1 -1
  3. package/dist/src/MigrationDescriber.d.ts +4 -4
  4. package/dist/src/MigrationDescriber.d.ts.map +1 -1
  5. package/dist/src/MigrationDescriber.js +8 -7
  6. package/dist/src/MigrationDescriber.js.map +1 -1
  7. package/dist/src/MigrationFilesManager.js +2 -2
  8. package/dist/src/MigrationFilesManager.js.map +1 -1
  9. package/dist/src/MigrationsResolver.js +3 -3
  10. package/dist/src/MigrationsResolver.js.map +1 -1
  11. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  12. package/dist/src/SchemaDiffer.js +21 -2
  13. package/dist/src/SchemaDiffer.js.map +1 -1
  14. package/dist/src/SchemaMigrator.d.ts +1 -2
  15. package/dist/src/SchemaMigrator.d.ts.map +1 -1
  16. package/dist/src/SchemaMigrator.js +0 -1
  17. package/dist/src/SchemaMigrator.js.map +1 -1
  18. package/dist/src/index.d.ts +1 -1
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/index.js +3 -1
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/modifications/ModificationHandler.d.ts +9 -5
  23. package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
  24. package/dist/src/modifications/ModificationHandler.js.map +1 -1
  25. package/dist/src/modifications/ModificationHandlerFactory.d.ts +2 -2
  26. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  27. package/dist/src/modifications/ModificationHandlerFactory.js +14 -0
  28. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  29. package/dist/src/modifications/ModificationVersions.d.ts +4 -2
  30. package/dist/src/modifications/ModificationVersions.d.ts.map +1 -1
  31. package/dist/src/modifications/ModificationVersions.js +5 -3
  32. package/dist/src/modifications/ModificationVersions.js.map +1 -1
  33. package/dist/src/modifications/actions/CreateTargetModification.d.ts +21 -0
  34. package/dist/src/modifications/actions/CreateTargetModification.d.ts.map +1 -0
  35. package/dist/src/modifications/actions/CreateTargetModification.js +40 -0
  36. package/dist/src/modifications/actions/CreateTargetModification.js.map +1 -0
  37. package/dist/src/modifications/actions/CreateTriggerModification.d.ts +21 -0
  38. package/dist/src/modifications/actions/CreateTriggerModification.d.ts.map +1 -0
  39. package/dist/src/modifications/actions/CreateTriggerModification.js +40 -0
  40. package/dist/src/modifications/actions/CreateTriggerModification.js.map +1 -0
  41. package/dist/src/modifications/actions/RemoveTargetModification.d.ts +21 -0
  42. package/dist/src/modifications/actions/RemoveTargetModification.d.ts.map +1 -0
  43. package/dist/src/modifications/actions/RemoveTargetModification.js +40 -0
  44. package/dist/src/modifications/actions/RemoveTargetModification.js.map +1 -0
  45. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts +21 -0
  46. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts.map +1 -0
  47. package/dist/src/modifications/actions/RemoveTriggerModification.js +40 -0
  48. package/dist/src/modifications/actions/RemoveTriggerModification.js.map +1 -0
  49. package/dist/src/modifications/actions/UpdateTargetModification.d.ts +22 -0
  50. package/dist/src/modifications/actions/UpdateTargetModification.d.ts.map +1 -0
  51. package/dist/src/modifications/actions/UpdateTargetModification.js +46 -0
  52. package/dist/src/modifications/actions/UpdateTargetModification.js.map +1 -0
  53. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts +21 -0
  54. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts.map +1 -0
  55. package/dist/src/modifications/actions/UpdateTriggerModification.js +46 -0
  56. package/dist/src/modifications/actions/UpdateTriggerModification.js.map +1 -0
  57. package/dist/src/modifications/actions/index.d.ts +4 -0
  58. package/dist/src/modifications/actions/index.d.ts.map +1 -0
  59. package/dist/src/modifications/actions/index.js +20 -0
  60. package/dist/src/modifications/actions/index.js.map +1 -0
  61. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  62. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +3 -3
  63. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  64. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +3 -3
  65. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  66. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +20 -32
  67. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  68. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +11 -5
  69. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  70. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +37 -9
  71. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  72. package/dist/src/modifications/constraints/utils.d.ts +7 -0
  73. package/dist/src/modifications/constraints/utils.d.ts.map +1 -0
  74. package/dist/src/modifications/constraints/utils.js +33 -0
  75. package/dist/src/modifications/constraints/utils.js.map +1 -0
  76. package/dist/src/modifications/entities/CreateEntityModification.d.ts +4 -4
  77. package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  78. package/dist/src/modifications/entities/CreateEntityModification.js +18 -14
  79. package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
  80. package/dist/src/modifications/entities/CreateViewModification.d.ts +2 -2
  81. package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
  82. package/dist/src/modifications/entities/CreateViewModification.js +14 -10
  83. package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
  84. package/dist/src/modifications/entities/RemoveEntityModification.d.ts +3 -4
  85. package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  86. package/dist/src/modifications/entities/RemoveEntityModification.js +3 -2
  87. package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  88. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +2 -2
  89. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  90. package/dist/src/modifications/entities/ToggleEventLogModification.js +3 -3
  91. package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  92. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +4 -5
  93. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  94. package/dist/src/modifications/entities/UpdateEntityNameModification.js +3 -19
  95. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  96. package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts +23 -0
  97. package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -0
  98. package/dist/src/modifications/entities/UpdateEntityOrderByModification.js +63 -0
  99. package/dist/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -0
  100. package/dist/src/modifications/entities/index.d.ts +1 -0
  101. package/dist/src/modifications/entities/index.d.ts.map +1 -1
  102. package/dist/src/modifications/entities/index.js +1 -0
  103. package/dist/src/modifications/entities/index.js.map +1 -1
  104. package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  105. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +4 -5
  106. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  107. package/dist/src/modifications/fields/UpdateFieldNameModification.js +18 -27
  108. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  109. package/dist/src/modifications/indexes/CreateIndexModification.d.ts +5 -5
  110. package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  111. package/dist/src/modifications/indexes/CreateIndexModification.js +24 -35
  112. package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  113. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +12 -6
  114. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  115. package/dist/src/modifications/indexes/RemoveIndexModification.js +36 -10
  116. package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  117. package/dist/src/modifications/indexes/utils.d.ts +7 -0
  118. package/dist/src/modifications/indexes/utils.d.ts.map +1 -0
  119. package/dist/src/modifications/indexes/utils.js +33 -0
  120. package/dist/src/modifications/indexes/utils.js.map +1 -0
  121. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +3 -4
  122. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  123. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +10 -10
  124. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  125. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +3 -4
  126. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  127. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +14 -12
  128. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  129. package/dist/src/modifications/relations/CreateRelationModification.d.ts +3 -4
  130. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  131. package/dist/src/modifications/relations/CreateRelationModification.js +14 -26
  132. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  133. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +3 -4
  134. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  135. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +4 -5
  136. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  137. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +2 -2
  138. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  139. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +20 -1
  140. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  141. package/dist/src/modifications/relations/helpers.d.ts +13 -0
  142. package/dist/src/modifications/relations/helpers.d.ts.map +1 -0
  143. package/dist/src/modifications/relations/helpers.js +29 -0
  144. package/dist/src/modifications/relations/helpers.js.map +1 -0
  145. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts +19 -0
  146. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -0
  147. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js +40 -0
  148. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -0
  149. package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -3
  150. package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
  151. package/dist/src/modifications/utils/createJunctionTable.js +4 -6
  152. package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
  153. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +2 -4
  154. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  155. package/dist/src/modifications/utils/schemaUpdateUtils.js +5 -20
  156. package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  157. package/dist/src/modifications/utils/stringArrayEquals.d.ts +2 -0
  158. package/dist/src/modifications/utils/stringArrayEquals.d.ts.map +1 -0
  159. package/dist/src/modifications/utils/stringArrayEquals.js +9 -0
  160. package/dist/src/modifications/utils/stringArrayEquals.js.map +1 -0
  161. package/dist/src/tsconfig.tsbuildinfo +1 -1
  162. package/dist/src/utils/PartialEntity.d.ts +5 -3
  163. package/dist/src/utils/PartialEntity.d.ts.map +1 -1
  164. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +1 -1
  165. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +5 -5
  166. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  167. package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
  168. package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
  169. package/dist/tests/cases/integration/createEntity.test.js +6 -9
  170. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  171. package/dist/tests/cases/integration/createManyHasMany.test.js +3 -3
  172. package/dist/tests/cases/integration/createManyHasOne.test.js +4 -4
  173. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  174. package/dist/tests/cases/integration/createOneHasMany.test.js +6 -9
  175. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  176. package/dist/tests/cases/integration/createOneHasOne.test.js +6 -6
  177. package/dist/tests/cases/integration/createRelationInverseSide.test.js +1 -1
  178. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  179. package/dist/tests/cases/integration/createView.test.js +6 -6
  180. package/dist/tests/cases/integration/removeField.test.js +6 -6
  181. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  182. package/dist/tests/cases/integration/updateColumnDefinition.test.js +4 -4
  183. package/dist/tests/cases/integration/updateEntityName.test.js +6 -5
  184. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  185. package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts +2 -0
  186. package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts.map +1 -0
  187. package/dist/tests/cases/integration/updateEntityOrderBy.test.js +57 -0
  188. package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -0
  189. package/dist/tests/cases/integration/updateFieldName.test.js +8 -7
  190. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  191. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -1
  192. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  193. package/dist/tests/cases/integration/updateView.test.js +18 -18
  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.d.ts.map +1 -1
  197. package/dist/tests/src/tests.js +12 -8
  198. package/dist/tests/src/tests.js.map +1 -1
  199. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +11 -7
  201. package/src/MigrationCreator.ts +1 -1
  202. package/src/MigrationDescriber.ts +11 -9
  203. package/src/MigrationFilesManager.ts +1 -1
  204. package/src/MigrationsResolver.ts +1 -1
  205. package/src/SchemaDiffer.ts +23 -12
  206. package/src/SchemaMigrator.ts +1 -3
  207. package/src/index.ts +1 -1
  208. package/src/modifications/ModificationHandler.ts +10 -5
  209. package/src/modifications/ModificationHandlerFactory.ts +24 -11
  210. package/src/modifications/ModificationVersions.ts +4 -2
  211. package/src/modifications/actions/CreateTargetModification.ts +46 -0
  212. package/src/modifications/actions/CreateTriggerModification.ts +46 -0
  213. package/src/modifications/actions/RemoveTargetModification.ts +46 -0
  214. package/src/modifications/actions/RemoveTriggerModification.ts +46 -0
  215. package/src/modifications/actions/UpdateTargetModification.ts +51 -0
  216. package/src/modifications/actions/UpdateTriggerModification.ts +49 -0
  217. package/src/modifications/actions/index.ts +3 -0
  218. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +1 -2
  219. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +31 -40
  220. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +60 -15
  221. package/src/modifications/constraints/utils.ts +36 -0
  222. package/src/modifications/entities/CreateEntityModification.ts +9 -8
  223. package/src/modifications/entities/CreateViewModification.ts +4 -3
  224. package/src/modifications/entities/RemoveEntityModification.ts +5 -5
  225. package/src/modifications/entities/ToggleEventLogModification.ts +4 -3
  226. package/src/modifications/entities/UpdateEntityNameModification.ts +10 -25
  227. package/src/modifications/entities/UpdateEntityOrderByModification.ts +68 -0
  228. package/src/modifications/entities/index.ts +1 -0
  229. package/src/modifications/fields/RemoveFieldModification.ts +1 -1
  230. package/src/modifications/fields/UpdateFieldNameModification.ts +33 -39
  231. package/src/modifications/indexes/CreateIndexModification.ts +35 -41
  232. package/src/modifications/indexes/RemoveIndexModification.ts +57 -17
  233. package/src/modifications/indexes/utils.ts +30 -0
  234. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -19
  235. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +21 -22
  236. package/src/modifications/relations/CreateRelationModification.ts +21 -49
  237. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +4 -5
  238. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +30 -3
  239. package/src/modifications/relations/helpers.ts +39 -0
  240. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +46 -0
  241. package/src/modifications/utils/createJunctionTable.ts +8 -8
  242. package/src/modifications/utils/schemaUpdateUtils.ts +5 -17
  243. package/src/modifications/utils/stringArrayEquals.ts +4 -0
  244. package/src/tsconfig.json +4 -12
  245. package/src/utils/PartialEntity.ts +7 -1
  246. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +1 -1
  247. package/tests/cases/integration/convertOneToManyRelation.test.ts +5 -5
  248. package/tests/cases/integration/createAndDropIndex.test.ts +4 -4
  249. package/tests/cases/integration/createEntity.test.ts +6 -9
  250. package/tests/cases/integration/createManyHasMany.test.ts +3 -3
  251. package/tests/cases/integration/createManyHasOne.test.ts +4 -4
  252. package/tests/cases/integration/createOneHasMany.test.ts +6 -9
  253. package/tests/cases/integration/createOneHasOne.test.ts +6 -6
  254. package/tests/cases/integration/createRelationInverseSide.test.ts +1 -1
  255. package/tests/cases/integration/createView.test.ts +6 -6
  256. package/tests/cases/integration/removeField.test.ts +6 -6
  257. package/tests/cases/integration/updateColumnDefinition.test.ts +4 -4
  258. package/tests/cases/integration/updateEntityName.test.ts +7 -5
  259. package/tests/cases/integration/updateEntityOrderBy.test.ts +43 -0
  260. package/tests/cases/integration/updateFieldName.test.ts +9 -7
  261. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -1
  262. package/tests/cases/integration/updateView.test.ts +18 -18
  263. package/tests/scripts/checkCreateConsistentMigrations.ts +1 -1
  264. package/tests/src/tests.ts +18 -15
  265. package/tests/tsconfig.json +2 -6
  266. package/dist/src/MigrationVersionHelper.d.ts +0 -9
  267. package/dist/src/MigrationVersionHelper.d.ts.map +0 -1
  268. package/dist/src/MigrationVersionHelper.js +0 -45
  269. package/dist/src/MigrationVersionHelper.js.map +0 -1
  270. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts +0 -8
  271. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts.map +0 -1
  272. package/dist/src/modifications/utils/renameConstraintsHelper.js +0 -31
  273. package/dist/src/modifications/utils/renameConstraintsHelper.js.map +0 -1
  274. package/dist/src/modifications/utils/schemaMeta.d.ts +0 -8
  275. package/dist/src/modifications/utils/schemaMeta.d.ts.map +0 -1
  276. package/dist/src/modifications/utils/schemaMeta.js +0 -13
  277. package/dist/src/modifications/utils/schemaMeta.js.map +0 -1
  278. package/dist/tests/cases/integration/takenIndexName.test.d.ts +0 -2
  279. package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +0 -1
  280. package/dist/tests/cases/integration/takenIndexName.test.js +0 -307
  281. package/dist/tests/cases/integration/takenIndexName.test.js.map +0 -1
  282. package/src/MigrationVersionHelper.ts +0 -46
  283. package/src/modifications/utils/renameConstraintsHelper.ts +0 -34
  284. package/src/modifications/utils/schemaMeta.ts +0 -18
  285. package/tests/cases/integration/takenIndexName.test.ts +0 -314
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UpdateEntityOrderByDiffer = exports.updateEntityOrderByModification = exports.UpdateEntityOrderByModificationHandler = void 0;
7
+ const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
8
+ const ModificationHandler_1 = require("../ModificationHandler");
9
+ const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
10
+ class UpdateEntityOrderByModificationHandler {
11
+ constructor(data, schema) {
12
+ this.data = data;
13
+ this.schema = schema;
14
+ }
15
+ createSql(builder) { }
16
+ getSchemaUpdater() {
17
+ const { entityName, orderBy } = this.data;
18
+ return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, ({ entity }) => {
19
+ if (orderBy) {
20
+ return {
21
+ ...entity,
22
+ orderBy,
23
+ };
24
+ }
25
+ const { orderBy: _, ...rest } = entity;
26
+ return rest;
27
+ }));
28
+ }
29
+ describe() {
30
+ return { message: `Update order-by of entity ${this.data.entityName}` };
31
+ }
32
+ }
33
+ exports.UpdateEntityOrderByModificationHandler = UpdateEntityOrderByModificationHandler;
34
+ exports.updateEntityOrderByModification = (0, ModificationHandler_1.createModificationType)({
35
+ id: 'updateEntityOrderBy',
36
+ handler: UpdateEntityOrderByModificationHandler,
37
+ });
38
+ class UpdateEntityOrderByDiffer {
39
+ createDiff(originalSchema, updatedSchema) {
40
+ return Object.values(updatedSchema.model.entities)
41
+ .flatMap(updatedEntity => {
42
+ var _a, _b;
43
+ const origEntity = originalSchema.model.entities[updatedEntity.name];
44
+ if (!origEntity) {
45
+ return [];
46
+ }
47
+ if (!(0, fast_deep_equal_1.default)((_a = updatedEntity.orderBy) !== null && _a !== void 0 ? _a : [], (_b = origEntity.orderBy) !== null && _b !== void 0 ? _b : [])) {
48
+ if (updatedEntity.orderBy) {
49
+ return [exports.updateEntityOrderByModification.createModification({
50
+ entityName: updatedEntity.name,
51
+ orderBy: updatedEntity.orderBy,
52
+ })];
53
+ }
54
+ return [exports.updateEntityOrderByModification.createModification({
55
+ entityName: updatedEntity.name,
56
+ })];
57
+ }
58
+ return [];
59
+ });
60
+ }
61
+ }
62
+ exports.UpdateEntityOrderByDiffer = UpdateEntityOrderByDiffer;
63
+ //# sourceMappingURL=UpdateEntityOrderByModification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateEntityOrderByModification.js","sourceRoot":"","sources":["../../../../src/modifications/entities/UpdateEntityOrderByModification.ts"],"names":[],"mappings":";;;;;;AAEA,kEAAqF;AACrF,gEAA4F;AAC5F,sEAAuC;AAEvC,MAAa,sCAAsC;IAElD,YAA6B,IAAyC,EAAmB,MAAc;QAA1E,SAAI,GAAJ,IAAI,CAAqC;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAErG,SAAS,CAAC,OAAyB,IAAU,CAAC;IAE9C,gBAAgB;QACtB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QACzC,OAAO,IAAA,+BAAW,EACjB,IAAA,gCAAY,EAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACvC,IAAI,OAAO,EAAE;gBACZ,OAAO;oBACN,GAAG,MAAM;oBACT,OAAO;iBACP,CAAA;aACD;YACD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;YACtC,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,OAAO,EAAE,6BAA6B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAA;IACxE,CAAC;CACD;AAzBD,wFAyBC;AAOY,QAAA,+BAA+B,GAAG,IAAA,4CAAsB,EAAC;IACrE,EAAE,EAAE,qBAAqB;IACzB,OAAO,EAAE,sCAAsC;CAC/C,CAAC,CAAA;AAEF,MAAa,yBAAyB;IACrC,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;aAChD,OAAO,CAAC,aAAa,CAAC,EAAE;;YACxB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YACpE,IAAI,CAAC,UAAU,EAAE;gBAChB,OAAO,EAAE,CAAA;aACT;YAED,IAAI,CAAC,IAAA,yBAAS,EAAC,MAAA,aAAa,CAAC,OAAO,mCAAI,EAAE,EAAE,MAAA,UAAU,CAAC,OAAO,mCAAI,EAAE,CAAC,EAAE;gBACtE,IAAI,aAAa,CAAC,OAAO,EAAE;oBAC1B,OAAO,CAAC,uCAA+B,CAAC,kBAAkB,CAAC;4BAC1D,UAAU,EAAE,aAAa,CAAC,IAAI;4BAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;yBAC9B,CAAC,CAAC,CAAA;iBACH;gBACD,OAAO,CAAC,uCAA+B,CAAC,kBAAkB,CAAC;wBAC1D,UAAU,EAAE,aAAa,CAAC,IAAI;qBAC9B,CAAC,CAAC,CAAA;aACH;YACD,OAAO,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IAEJ,CAAC;CACD;AAxBD,8DAwBC"}
@@ -4,4 +4,5 @@ export * from './RemoveEntityModification';
4
4
  export * from './ToggleEventLogModification';
5
5
  export * from './UpdateEntityNameModification';
6
6
  export * from './UpdateEntityTableNameModification';
7
+ export * from './UpdateEntityOrderByModification';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modifications/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA"}
@@ -20,4 +20,5 @@ __exportStar(require("./RemoveEntityModification"), exports);
20
20
  __exportStar(require("./ToggleEventLogModification"), exports);
21
21
  __exportStar(require("./UpdateEntityNameModification"), exports);
22
22
  __exportStar(require("./UpdateEntityTableNameModification"), exports);
23
+ __exportStar(require("./UpdateEntityOrderByModification"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modifications/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,2DAAwC;AACxC,6DAA0C;AAC1C,+DAA4C;AAC5C,iEAA8C;AAC9C,sEAAmD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modifications/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,2DAAwC;AACxC,6DAA0C;AAC1C,+DAA4C;AAC5C,iEAA8C;AAC9C,sEAAmD;AACnD,oEAAiD"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveFieldModification.js","sourceRoot":"","sources":["../../../../src/modifications/fields/RemoveFieldModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoveFieldModification.js","sourceRoot":"","sources":["../../../../src/modifications/fields/RemoveFieldModification.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import { MigrationBuilder } from '@contember/database-migrations';
2
+ import { Schema } from '@contember/schema';
2
3
  import { SchemaUpdater } from '../utils/schemaUpdateUtils';
3
- import { ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler';
4
- import { SchemaWithMeta } from '../utils/schemaMeta';
4
+ import { ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
5
5
  export declare class UpdateFieldNameModificationHandler implements ModificationHandler<UpdateFieldNameModificationData> {
6
6
  private readonly data;
7
7
  private readonly schema;
8
8
  private readonly options;
9
9
  private renameColumnSubModification;
10
- constructor(data: UpdateFieldNameModificationData, schema: SchemaWithMeta, options: ModificationHandlerOptions);
11
- createSql(builder: MigrationBuilder): void;
10
+ constructor(data: UpdateFieldNameModificationData, schema: Schema, options: ModificationHandlerOptions);
11
+ createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void;
12
12
  getSchemaUpdater(): SchemaUpdater;
13
- private getNewConstraintName;
14
13
  describe(): {
15
14
  message: string;
16
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateFieldNameModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/fields/UpdateFieldNameModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EACN,aAAa,EAWb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAA0B,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAOhH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,qBAAa,kCAAmC,YAAW,mBAAmB,CAAC,+BAA+B,CAAC;IAI7G,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALzB,OAAO,CAAC,2BAA2B,CAAmD;gBAGpE,IAAI,EAAE,+BAA+B,EACrC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,0BAA0B;IAW9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAW1C,gBAAgB,IAAI,aAAa;IA+HxC,OAAO,CAAC,oBAAoB;IAW5B,QAAQ;;;CAGR;AAED,MAAM,WAAW,+BAA+B;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,2BAA2B,uGAGtC,CAAA"}
1
+ {"version":3,"file":"UpdateFieldNameModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/fields/UpdateFieldNameModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAgB,MAAM,EAAS,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EACN,aAAa,EAWb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEN,mBAAmB,EACnB,mCAAmC,EACnC,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAW/B,qBAAa,kCAAmC,YAAW,mBAAmB,CAAC,+BAA+B,CAAC;IAI7G,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALzB,OAAO,CAAC,2BAA2B,CAAmD;gBAGpE,IAAI,EAAE,+BAA+B,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAW9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,mCAAmC,GAAG,IAAI;IAQxF,gBAAgB,IAAI,aAAa;IAgIxC,QAAQ;;;CAGR;AAED,MAAM,WAAW,+BAA+B;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,2BAA2B,uGAGtC,CAAA"}
@@ -5,7 +5,6 @@ const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
5
5
  const ModificationHandler_1 = require("../ModificationHandler");
6
6
  const schema_utils_1 = require("@contember/schema-utils");
7
7
  const ModificationVersions_1 = require("../ModificationVersions");
8
- const renameConstraintsHelper_1 = require("../utils/renameConstraintsHelper");
9
8
  const valueUtils_1 = require("../utils/valueUtils");
10
9
  const columns_1 = require("../columns");
11
10
  const NoopModification_1 = require("../NoopModification");
@@ -23,31 +22,33 @@ class UpdateFieldNameModificationHandler {
23
22
  }, this.schema, this.options);
24
23
  }
25
24
  }
26
- createSql(builder) {
25
+ createSql(builder, options) {
27
26
  const entity = this.schema.model.entities[this.data.entityName];
28
27
  if (entity.view) {
29
28
  return;
30
29
  }
31
- if (this.options.formatVersion >= ModificationVersions_1.VERSION_UPDATE_CONSTRAINT_NAME) {
32
- (0, renameConstraintsHelper_1.renameConstraintsSqlBuilder)(builder, entity, this.getNewConstraintName.bind(this));
33
- }
34
- this.renameColumnSubModification.createSql(builder);
30
+ this.renameColumnSubModification.createSql(builder, options);
35
31
  }
36
32
  getSchemaUpdater() {
37
- const updateConstraintName = this.options.formatVersion >= ModificationVersions_1.VERSION_UPDATE_CONSTRAINT_NAME
38
- ? (0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, (0, renameConstraintsHelper_1.renameConstraintSchemaUpdater)(this.getNewConstraintName.bind(this)))
33
+ const updateConstraintFields = this.options.formatVersion >= ModificationVersions_1.VERSION_UPDATE_CONSTRAINT_FIELDS
34
+ ? (0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => {
35
+ return {
36
+ ...entity,
37
+ unique: entity.unique.map(unique => ({
38
+ ...unique,
39
+ fields: unique.fields.map((0, valueUtils_1.changeValue)(this.data.fieldName, this.data.newFieldName)),
40
+ })),
41
+ };
42
+ })
39
43
  : undefined;
40
- const updateConstraintFields = this.options.formatVersion >= ModificationVersions_1.VERSION_UPDATE_CONSTRAINT_NAME
44
+ const updateIndexFields = this.options.formatVersion >= ModificationVersions_1.VERSION_UPDATE_INDEX_FIELDS
41
45
  ? (0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => {
42
46
  return {
43
47
  ...entity,
44
- unique: Object.fromEntries(Object.entries(entity.unique).map(([name, unique]) => [
45
- name,
46
- {
47
- ...unique,
48
- fields: unique.fields.map((0, valueUtils_1.changeValue)(this.data.fieldName, this.data.newFieldName)),
49
- },
50
- ])),
48
+ indexes: entity.indexes.map(unique => ({
49
+ ...unique,
50
+ fields: unique.fields.map((0, valueUtils_1.changeValue)(this.data.fieldName, this.data.newFieldName)),
51
+ })),
51
52
  };
52
53
  })
53
54
  : undefined;
@@ -125,17 +126,7 @@ class UpdateFieldNameModificationHandler {
125
126
  });
126
127
  }))))
127
128
  : undefined;
128
- return (0, schemaUpdateUtils_1.updateSchema)(updateAclOp, this.renameColumnSubModification.getSchemaUpdater(), (0, schemaUpdateUtils_1.updateModel)(updateConstraintName, updateConstraintFields, updateRelationReferences, updateFieldName));
129
- }
130
- getNewConstraintName(constraint) {
131
- const generatedName = schema_utils_1.NamingHelper.createUniqueConstraintName(this.data.entityName, constraint.fields);
132
- const isGenerated = constraint.name === generatedName;
133
- if (!isGenerated) {
134
- null;
135
- }
136
- const newFieldNames = constraint.fields.map((0, valueUtils_1.changeValue)(this.data.fieldName, this.data.newFieldName));
137
- const newName = schema_utils_1.NamingHelper.createUniqueConstraintName(this.data.entityName, newFieldNames);
138
- return newName === constraint.name ? null : newName;
129
+ return (0, schemaUpdateUtils_1.updateSchema)(updateAclOp, this.renameColumnSubModification.getSchemaUpdater(), (0, schemaUpdateUtils_1.updateModel)(updateConstraintFields, updateIndexFields, updateRelationReferences, updateFieldName));
139
130
  }
140
131
  describe() {
141
132
  return { message: `Change field name ${this.data.entityName}.${this.data.fieldName} to ${this.data.newFieldName}` };
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateFieldNameModification.js","sourceRoot":"","sources":["../../../../src/modifications/fields/UpdateFieldNameModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateFieldNameModification.js","sourceRoot":"","sources":["../../../../src/modifications/fields/UpdateFieldNameModification.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,23 @@
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 CreateIndexModificationHandler implements ModificationHandler<CreateIndexModificationData> {
6
6
  private readonly data;
7
7
  private readonly schema;
8
8
  constructor(data: CreateIndexModificationData, 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
14
  }
15
15
  export declare const createIndexModification: import("../ModificationHandler").ModificationType<"createIndex", CreateIndexModificationData>;
16
- export declare class CreateIndexDiffer implements Differ {
17
- createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<CreateIndexModificationData>[];
18
- }
19
16
  export interface CreateIndexModificationData {
20
17
  entityName: string;
21
18
  index: Model.Index;
22
19
  }
20
+ export declare class CreateIndexDiffer implements Differ {
21
+ createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<CreateIndexModificationData>[];
22
+ }
23
23
  //# sourceMappingURL=CreateIndexModification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateIndexModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/indexes/CreateIndexModification.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,8BAA+B,YAAW,mBAAmB,CAAC,2BAA2B,CAAC;IAC1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA+B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA1D,IAAI,EAAE,2BAA2B,EAAmB,MAAM,EAAE,MAAM;IAExF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAoC1C,gBAAgB,IAAI,aAAa;IAYxC,QAAQ;;;CAKR;AAED,eAAO,MAAM,uBAAuB,+FAGlC,CAAA;AAEF,qBAAa,iBAAkB,YAAW,MAAM;IAC/C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAOxD;AAED,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CAClB"}
1
+ {"version":3,"file":"CreateIndexModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/indexes/CreateIndexModification.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,8BAA+B,YAAW,mBAAmB,CAAC,2BAA2B,CAAC;IAC1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA+B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA1D,IAAI,EAAE,2BAA2B,EAAmB,MAAM,EAAE,MAAM;IAExF,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAoBjI,gBAAgB,IAAI,aAAa;IAYxC,QAAQ;;;CAKR;AAED,eAAO,MAAM,uBAAuB,+FAGlC,CAAA;AAEF,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CAClB;AAED,qBAAa,iBAAkB,YAAW,MAAM;IAC/C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAUxD"}
@@ -1,56 +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.CreateIndexDiffer = exports.createIndexModification = exports.CreateIndexModificationHandler = 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 CreateIndexModificationHandler {
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.index.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
- visitOneHasOneOwning: ({ relation }) => {
27
- return relation.joiningColumn.columnName;
28
- },
29
- visitOneHasMany: () => {
30
- throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
31
- },
32
- visitOneHasOneInverse: () => {
33
- throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
34
- },
35
- visitManyHasManyOwning: () => {
36
- throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
37
- },
38
- visitManyHasManyInverse: () => {
39
- throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
40
- },
41
- });
42
- });
43
- builder.addIndex(entity.tableName, [...columns], {
44
- name: this.data.index.name,
23
+ const columns = (0, utils_1.getIndexColumns)({
24
+ fields,
25
+ entity,
26
+ model: this.schema.model,
45
27
  });
28
+ const tableNameId = (0, dbHelpers_1.wrapIdentifier)(entity.tableName);
29
+ const columnNameIds = columns.map(dbHelpers_1.wrapIdentifier);
30
+ builder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameIds.join(', ')})`);
31
+ invalidateDatabaseMetadata();
46
32
  }
47
33
  getSchemaUpdater() {
48
34
  return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => ({
49
35
  ...entity,
50
- indexes: {
36
+ indexes: [
51
37
  ...entity.indexes,
52
- [this.data.index.name]: this.data.index,
53
- },
38
+ this.data.index,
39
+ ],
54
40
  })));
55
41
  }
56
42
  describe() {
@@ -66,9 +52,12 @@ exports.createIndexModification = (0, ModificationHandler_1.createModificationTy
66
52
  });
67
53
  class CreateIndexDiffer {
68
54
  createDiff(originalSchema, updatedSchema) {
69
- return Object.values(updatedSchema.model.entities).flatMap(entity => Object.values(entity.indexes)
70
- .filter(it => !originalSchema.model.entities[entity.name].indexes[it.name])
71
- .map(index => exports.createIndexModification.createModification({ entityName: entity.name, index })));
55
+ return Object.values(updatedSchema.model.entities).flatMap(entity => entity.indexes
56
+ .filter(it => !originalSchema.model.entities[entity.name].indexes.find(idx => (0, fast_deep_equal_1.default)(idx.fields, it.fields)))
57
+ .map(index => exports.createIndexModification.createModification({
58
+ entityName: entity.name,
59
+ index,
60
+ })));
72
61
  }
73
62
  }
74
63
  exports.CreateIndexDiffer = CreateIndexDiffer;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateIndexModification.js","sourceRoot":"","sources":["../../../../src/modifications/indexes/CreateIndexModification.ts"],"names":[],"mappings":";;;AAEA,kEAAqF;AACrF,gEAA4F;AAC5F,0DAA4D;AAE5D,MAAa,8BAA8B;IAC1C,YAA6B,IAAiC,EAAmB,MAAc;QAAlE,SAAI,GAAJ,IAAI,CAA6B;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE5F,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,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACtC,OAAO,IAAA,iCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC/D,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;oBAC3B,OAAO,MAAM,CAAC,UAAU,CAAA;gBACzB,CAAC;gBACD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACjC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAA;gBACzC,CAAC;gBACD,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACtC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAA;gBACzC,CAAC;gBACD,eAAe,EAAE,GAAG,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;gBACtF,CAAC;gBACD,qBAAqB,EAAE,GAAG,EAAE;oBAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;gBAC9F,CAAC;gBACD,sBAAsB,EAAE,GAAG,EAAE;oBAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;gBACtF,CAAC;gBACD,uBAAuB,EAAE,GAAG,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;gBAC9F,CAAC;aACD,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;SAC1B,CAAC,CAAA;IACH,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,OAAO,EAAE;gBACR,GAAG,MAAM,CAAC,OAAO;gBACjB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;aACvC;SACD,CAAC,CAAC,CACH,CAAA;IACF,CAAC;IAED,QAAQ;QACP,OAAO;YACN,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;SAC/F,CAAA;IACF,CAAC;CACD;AAxDD,wEAwDC;AAEY,QAAA,uBAAuB,GAAG,IAAA,4CAAsB,EAAC;IAC7D,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,8BAA8B;CACvC,CAAC,CAAA;AAEF,MAAa,iBAAiB;IAC7B,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,CAAC,MAAM,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aAC1E,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,+BAAuB,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAC9F,CAAA;IACF,CAAC;CACD;AARD,8CAQC"}
1
+ {"version":3,"file":"CreateIndexModification.js","sourceRoot":"","sources":["../../../../src/modifications/indexes/CreateIndexModification.ts"],"names":[],"mappings":";;;;;;AAEA,kEAAqF;AACrF,gEAK+B;AAC/B,qDAAsD;AACtD,mCAAyC;AACzC,sEAAuC;AAEvC,MAAa,8BAA8B;IAC1C,YAA6B,IAAiC,EAAmB,MAAc;QAAlE,SAAI,GAAJ,IAAI,CAA6B;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE5F,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,KAAK,CAAC,MAAM,CAAA;QACrC,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC;YAC/B,MAAM;YACN,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACxB,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,mBAAmB,WAAW,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE3E,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,OAAO,EAAE;gBACR,GAAG,MAAM,CAAC,OAAO;gBACjB,IAAI,CAAC,IAAI,CAAC,KAAK;aACf;SACD,CAAC,CAAC,CACH,CAAA;IACF,CAAC;IAED,QAAQ;QACP,OAAO;YACN,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;SAC/F,CAAA;IACF,CAAC;CACD;AAxCD,wEAwCC;AAEY,QAAA,uBAAuB,GAAG,IAAA,4CAAsB,EAAC;IAC7D,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,8BAA8B;CACvC,CAAC,CAAA;AAOF,MAAa,iBAAiB;IAC7B,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,OAAO;aACZ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,yBAAS,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/G,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,+BAAuB,CAAC,kBAAkB,CAAC;YACxD,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,KAAK;SACL,CAAC,CAAC,CACJ,CAAA;IACF,CAAC;CACD;AAXD,8CAWC"}
@@ -1,23 +1,29 @@
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 RemoveIndexModificationHandler implements ModificationHandler<RemoveIndexModificationData> {
6
6
  private readonly data;
7
7
  private readonly schema;
8
8
  constructor(data: RemoveIndexModificationData, 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
16
  export declare const removeIndexModification: import("../ModificationHandler").ModificationType<"removeIndex", RemoveIndexModificationData>;
16
- export declare class RemoveIndexDiffer implements Differ {
17
- createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<RemoveIndexModificationData>[];
18
- }
19
- export interface RemoveIndexModificationData {
17
+ export declare type RemoveIndexModificationData = {
20
18
  entityName: string;
21
19
  indexName: string;
20
+ fields?: never;
21
+ } | {
22
+ entityName: string;
23
+ fields: readonly string[];
24
+ indexName?: never;
25
+ };
26
+ export declare class RemoveIndexDiffer implements Differ {
27
+ createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<RemoveIndexModificationData>[];
22
28
  }
23
29
  //# sourceMappingURL=RemoveIndexModification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/indexes/RemoveIndexModification.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,8BAA+B,YAAW,mBAAmB,CAAC,2BAA2B,CAAC;IAC1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA+B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA1D,IAAI,EAAE,2BAA2B,EAAmB,MAAM,EAAE,MAAM;IAExF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAU1C,gBAAgB,IAAI,aAAa;IAYxC,QAAQ;;;CAIR;AAED,eAAO,MAAM,uBAAuB,+FAGlC,CAAA;AAGF,qBAAa,iBAAkB,YAAW,MAAM;IAE/C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAiBxD;AAED,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACjB"}
1
+ {"version":3,"file":"RemoveIndexModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/indexes/RemoveIndexModification.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,8BAA+B,YAAW,mBAAmB,CAAC,2BAA2B,CAAC;IAC1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA+B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA1D,IAAI,EAAE,2BAA2B,EAAmB,MAAM,EAAE,MAAM;IAExF,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAqBjI,gBAAgB,IAAI,aAAa;IAaxC,QAAQ;;;IAKR,SAAS;CAUT;AAED,eAAO,MAAM,uBAAuB,+FAGlC,CAAA;AAGF,oBAAY,2BAA2B,GACpC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,KAAK,CAAA;CACd,GACC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAA;CACjB,CAAA;AAEF,qBAAa,iBAAkB,YAAW,MAAM;IAE/C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAoBxD"}
@@ -7,23 +7,34 @@ exports.RemoveIndexDiffer = exports.removeIndexModification = exports.RemoveInde
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 RemoveIndexModificationHandler {
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.dropIndex(entity.tableName, [], {
21
- name: this.data.indexName,
22
+ const fields = this.getFields();
23
+ const columns = (0, utils_1.getIndexColumns)({
24
+ entity,
25
+ fields,
26
+ model: this.schema.model,
22
27
  });
28
+ const indexNames = databaseMetadata.getIndexNames({ tableName: entity.tableName, columnNames: columns });
29
+ for (const name of indexNames) {
30
+ builder.sql(`DROP INDEX ${(0, dbHelpers_1.wrapIdentifier)(name)}`);
31
+ }
32
+ invalidateDatabaseMetadata();
23
33
  }
24
34
  getSchemaUpdater() {
35
+ const fields = this.getFields();
25
36
  return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, ({ entity }) => {
26
- const { [this.data.indexName]: removed, ...indexes } = entity.indexes;
37
+ const indexes = entity.indexes.filter(it => !(0, fast_deep_equal_1.default)(it.fields, fields));
27
38
  return {
28
39
  ...entity,
29
40
  indexes,
@@ -31,9 +42,20 @@ class RemoveIndexModificationHandler {
31
42
  }));
32
43
  }
33
44
  describe() {
34
- const fields = this.schema.model.entities[this.data.entityName].indexes[this.data.indexName].fields;
45
+ const fields = this.getFields();
35
46
  return { message: `Remove index (${fields.join(', ')}) on entity ${this.data.entityName}` };
36
47
  }
48
+ getFields() {
49
+ var _a;
50
+ const entity = this.schema.model.entities[this.data.entityName];
51
+ const fields = 'indexName' in this.data
52
+ ? (_a = entity.indexes.find(it => it.name === this.data.indexName)) === null || _a === void 0 ? void 0 : _a.fields
53
+ : this.data.fields;
54
+ if (!fields) {
55
+ throw new Error();
56
+ }
57
+ return fields;
58
+ }
37
59
  }
38
60
  exports.RemoveIndexModificationHandler = RemoveIndexModificationHandler;
39
61
  exports.removeIndexModification = (0, ModificationHandler_1.createModificationType)({
@@ -42,13 +64,17 @@ exports.removeIndexModification = (0, ModificationHandler_1.createModificationTy
42
64
  });
43
65
  class RemoveIndexDiffer {
44
66
  createDiff(originalSchema, updatedSchema) {
45
- return Object.values(originalSchema.model.entities).flatMap(entity => Object.values(entity.indexes)
46
- .filter(it => updatedSchema.model.entities[entity.name] &&
47
- (!updatedSchema.model.entities[entity.name].indexes[it.name] ||
48
- !(0, fast_deep_equal_1.default)(it.fields, updatedSchema.model.entities[entity.name].indexes[it.name].fields)))
67
+ return Object.values(originalSchema.model.entities).flatMap(entity => entity.indexes
68
+ .filter(it => {
69
+ const updatedEntity = updatedSchema.model.entities[entity.name];
70
+ if (!updatedEntity) {
71
+ return false;
72
+ }
73
+ return !updatedEntity.indexes.find(index => (0, fast_deep_equal_1.default)(index.fields, it.fields));
74
+ })
49
75
  .map(index => exports.removeIndexModification.createModification({
50
76
  entityName: entity.name,
51
- indexName: index.name,
77
+ fields: index.fields,
52
78
  })));
53
79
  }
54
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexModification.js","sourceRoot":"","sources":["../../../../src/modifications/indexes/RemoveIndexModification.ts"],"names":[],"mappings":";;;;;;AAEA,kEAAqF;AACrF,gEAA4F;AAC5F,sEAAuC;AAEvC,MAAa,8BAA8B;IAC1C,YAA6B,IAAiC,EAAmB,MAAc;QAAlE,SAAI,GAAJ,IAAI,CAA6B;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE5F,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,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;SACzB,CAAC,CAAA;IACH,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,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;YACrE,OAAO;gBACN,GAAG,MAAM;gBACT,OAAO;aACP,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,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;QACnG,OAAO,EAAE,OAAO,EAAE,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAA;IAC5F,CAAC;CACD;AA7BD,wEA6BC;AAEY,QAAA,uBAAuB,GAAG,IAAA,4CAAsB,EAAC;IAC7D,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,8BAA8B;CACvC,CAAC,CAAA;AAGF,MAAa,iBAAiB;IAE7B,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,OAAO,CAAC;aAC3B,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,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC3D,CAAC,IAAA,yBAAS,EAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAC3F;aACA,GAAG,CAAC,KAAK,CAAC,EAAE,CACZ,+BAAuB,CAAC,kBAAkB,CAAC;YAC1C,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,SAAS,EAAE,KAAK,CAAC,IAAI;SACrB,CAAC,CACF,CACF,CAAA;IACF,CAAC;CACD;AAnBD,8CAmBC"}
1
+ {"version":3,"file":"RemoveIndexModification.js","sourceRoot":"","sources":["../../../../src/modifications/indexes/RemoveIndexModification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Model } from '@contember/schema';
2
+ export declare const getIndexColumns: ({ 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/indexes/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,eAAO,MAAM,eAAe;YAAyC,SAAS,MAAM,EAAE;WAAS,MAAM,MAAM;YAAU,MAAM,MAAM;cA0BhI,CAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIndexColumns = void 0;
4
+ const schema_utils_1 = require("@contember/schema-utils");
5
+ const getIndexColumns = ({ 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
+ visitOneHasOneOwning: ({ relation }) => {
15
+ return relation.joiningColumn.columnName;
16
+ },
17
+ visitOneHasMany: () => {
18
+ throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
19
+ },
20
+ visitOneHasOneInverse: () => {
21
+ throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
22
+ },
23
+ visitManyHasManyOwning: () => {
24
+ throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
25
+ },
26
+ visitManyHasManyInverse: () => {
27
+ throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
28
+ },
29
+ });
30
+ });
31
+ };
32
+ exports.getIndexColumns = getIndexColumns;
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/modifications/indexes/utils.ts"],"names":[],"mappings":";;;AAAA,0DAA4D;AAGrD,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAA4E,EAAE,EAAE;IACtI,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,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACtC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAA;YACzC,CAAC;YACD,eAAe,EAAE,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,qBAAqB,EAAE,GAAG,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YAC9F,CAAC;YACD,sBAAsB,EAAE,GAAG,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,uBAAuB,EAAE,GAAG,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YAC9F,CAAC;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AA1BY,QAAA,eAAe,mBA0B3B"}
@@ -1,16 +1,15 @@
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, ModificationHandlerOptions } from '../ModificationHandler';
4
+ import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
5
5
  import { PartialManyHasManyRelation } from './normalization';
6
- import { SchemaWithMeta } from '../utils/schemaMeta';
7
6
  export declare class ConvertOneHasManyToManyHasManyRelationModificationHandler implements ModificationHandler<ConvertOneHasManyToManyHasManyRelationModificationData> {
8
7
  private readonly data;
9
8
  private readonly schema;
10
9
  private readonly options;
11
10
  private subModification;
12
- constructor(data: ConvertOneHasManyToManyHasManyRelationModificationData, schema: SchemaWithMeta, options: ModificationHandlerOptions);
13
- createSql(builder: MigrationBuilder): void;
11
+ constructor(data: ConvertOneHasManyToManyHasManyRelationModificationData, schema: Schema, options: ModificationHandlerOptions);
12
+ createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void;
14
13
  getSchemaUpdater(): SchemaUpdater;
15
14
  describe(): {
16
15
  message: string;