@contember/schema-migrations 1.3.0-alpha.6 → 1.3.0-alpha.8

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 (214) 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.js +3 -2
  6. package/dist/src/SchemaDiffer.js.map +1 -1
  7. package/dist/src/SchemaMigrator.d.ts +1 -2
  8. package/dist/src/SchemaMigrator.d.ts.map +1 -1
  9. package/dist/src/SchemaMigrator.js +0 -1
  10. package/dist/src/SchemaMigrator.js.map +1 -1
  11. package/dist/src/modifications/ModificationHandler.d.ts +9 -5
  12. package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
  13. package/dist/src/modifications/ModificationHandler.js.map +1 -1
  14. package/dist/src/modifications/ModificationHandlerFactory.d.ts +2 -2
  15. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  16. package/dist/src/modifications/ModificationHandlerFactory.js +2 -0
  17. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  18. package/dist/src/modifications/ModificationVersions.d.ts +4 -3
  19. package/dist/src/modifications/ModificationVersions.d.ts.map +1 -1
  20. package/dist/src/modifications/ModificationVersions.js +5 -4
  21. package/dist/src/modifications/ModificationVersions.js.map +1 -1
  22. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  23. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +3 -3
  24. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  25. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +3 -3
  26. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  27. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +20 -32
  28. package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  29. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +11 -5
  30. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  31. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +37 -9
  32. package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  33. package/dist/src/modifications/constraints/utils.d.ts +7 -0
  34. package/dist/src/modifications/constraints/utils.d.ts.map +1 -0
  35. package/dist/src/modifications/constraints/utils.js +33 -0
  36. package/dist/src/modifications/constraints/utils.js.map +1 -0
  37. package/dist/src/modifications/entities/CreateEntityModification.d.ts +4 -4
  38. package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  39. package/dist/src/modifications/entities/CreateEntityModification.js +18 -14
  40. package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
  41. package/dist/src/modifications/entities/CreateViewModification.d.ts +2 -2
  42. package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
  43. package/dist/src/modifications/entities/CreateViewModification.js +14 -10
  44. package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
  45. package/dist/src/modifications/entities/RemoveEntityModification.d.ts +3 -4
  46. package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  47. package/dist/src/modifications/entities/RemoveEntityModification.js +3 -2
  48. package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  49. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +2 -2
  50. package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  51. package/dist/src/modifications/entities/ToggleEventLogModification.js +3 -3
  52. package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  53. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +4 -5
  54. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  55. package/dist/src/modifications/entities/UpdateEntityNameModification.js +3 -34
  56. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  57. package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  58. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +4 -5
  59. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  60. package/dist/src/modifications/fields/UpdateFieldNameModification.js +18 -42
  61. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  62. package/dist/src/modifications/indexes/CreateIndexModification.d.ts +5 -5
  63. package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  64. package/dist/src/modifications/indexes/CreateIndexModification.js +24 -35
  65. package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  66. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +12 -6
  67. package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  68. package/dist/src/modifications/indexes/RemoveIndexModification.js +36 -10
  69. package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  70. package/dist/src/modifications/indexes/utils.d.ts +7 -0
  71. package/dist/src/modifications/indexes/utils.d.ts.map +1 -0
  72. package/dist/src/modifications/indexes/utils.js +33 -0
  73. package/dist/src/modifications/indexes/utils.js.map +1 -0
  74. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +3 -4
  75. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  76. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +10 -10
  77. package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  78. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +3 -4
  79. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  80. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +14 -12
  81. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  82. package/dist/src/modifications/relations/CreateRelationModification.d.ts +3 -4
  83. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  84. package/dist/src/modifications/relations/CreateRelationModification.js +13 -17
  85. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  86. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +3 -4
  87. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  88. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +4 -5
  89. package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  90. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +2 -2
  91. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  92. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +3 -3
  93. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  94. package/dist/src/modifications/relations/helpers.d.ts +4 -1
  95. package/dist/src/modifications/relations/helpers.d.ts.map +1 -1
  96. package/dist/src/modifications/relations/helpers.js +20 -17
  97. package/dist/src/modifications/relations/helpers.js.map +1 -1
  98. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts +19 -0
  99. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -0
  100. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js +40 -0
  101. package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -0
  102. package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -3
  103. package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
  104. package/dist/src/modifications/utils/createJunctionTable.js +4 -6
  105. package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
  106. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +2 -4
  107. package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  108. package/dist/src/modifications/utils/schemaUpdateUtils.js +5 -20
  109. package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  110. package/dist/src/modifications/utils/stringArrayEquals.d.ts +2 -0
  111. package/dist/src/modifications/utils/stringArrayEquals.d.ts.map +1 -0
  112. package/dist/src/modifications/utils/stringArrayEquals.js +9 -0
  113. package/dist/src/modifications/utils/stringArrayEquals.js.map +1 -0
  114. package/dist/src/tsconfig.tsbuildinfo +1 -1
  115. package/dist/src/utils/PartialEntity.d.ts +5 -3
  116. package/dist/src/utils/PartialEntity.d.ts.map +1 -1
  117. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +1 -1
  118. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +5 -5
  119. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  120. package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
  121. package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
  122. package/dist/tests/cases/integration/createEntity.test.js +6 -9
  123. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  124. package/dist/tests/cases/integration/createManyHasMany.test.js +3 -3
  125. package/dist/tests/cases/integration/createManyHasOne.test.js +4 -4
  126. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  127. package/dist/tests/cases/integration/createOneHasMany.test.js +6 -9
  128. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  129. package/dist/tests/cases/integration/createOneHasOne.test.js +6 -6
  130. package/dist/tests/cases/integration/createRelationInverseSide.test.js +1 -1
  131. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  132. package/dist/tests/cases/integration/createView.test.js +6 -6
  133. package/dist/tests/cases/integration/removeField.test.js +6 -6
  134. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  135. package/dist/tests/cases/integration/updateColumnDefinition.test.js +4 -4
  136. package/dist/tests/cases/integration/updateEntityName.test.js +1 -20
  137. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  138. package/dist/tests/cases/integration/updateFieldName.test.js +1 -21
  139. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  140. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -2
  141. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  142. package/dist/tests/cases/integration/updateView.test.js +18 -18
  143. package/dist/tests/scripts/checkCreateConsistentMigrations.js +1 -1
  144. package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
  145. package/dist/tests/src/tests.d.ts.map +1 -1
  146. package/dist/tests/src/tests.js +10 -4
  147. package/dist/tests/src/tests.js.map +1 -1
  148. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +6 -7
  150. package/src/MigrationDescriber.ts +11 -9
  151. package/src/SchemaDiffer.ts +3 -3
  152. package/src/SchemaMigrator.ts +1 -3
  153. package/src/modifications/ModificationHandler.ts +10 -5
  154. package/src/modifications/ModificationHandlerFactory.ts +12 -11
  155. package/src/modifications/ModificationVersions.ts +4 -3
  156. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +1 -2
  157. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +31 -40
  158. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +60 -15
  159. package/src/modifications/constraints/utils.ts +36 -0
  160. package/src/modifications/entities/CreateEntityModification.ts +9 -8
  161. package/src/modifications/entities/CreateViewModification.ts +4 -3
  162. package/src/modifications/entities/RemoveEntityModification.ts +5 -5
  163. package/src/modifications/entities/ToggleEventLogModification.ts +4 -3
  164. package/src/modifications/entities/UpdateEntityNameModification.ts +10 -46
  165. package/src/modifications/fields/RemoveFieldModification.ts +1 -1
  166. package/src/modifications/fields/UpdateFieldNameModification.ts +30 -57
  167. package/src/modifications/indexes/CreateIndexModification.ts +35 -41
  168. package/src/modifications/indexes/RemoveIndexModification.ts +57 -17
  169. package/src/modifications/indexes/utils.ts +30 -0
  170. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -19
  171. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +21 -22
  172. package/src/modifications/relations/CreateRelationModification.ts +20 -35
  173. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +4 -5
  174. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +13 -5
  175. package/src/modifications/relations/helpers.ts +27 -22
  176. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +46 -0
  177. package/src/modifications/utils/createJunctionTable.ts +8 -8
  178. package/src/modifications/utils/schemaUpdateUtils.ts +5 -17
  179. package/src/modifications/utils/stringArrayEquals.ts +4 -0
  180. package/src/tsconfig.json +0 -1
  181. package/src/utils/PartialEntity.ts +7 -1
  182. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +1 -1
  183. package/tests/cases/integration/convertOneToManyRelation.test.ts +5 -5
  184. package/tests/cases/integration/createAndDropIndex.test.ts +4 -4
  185. package/tests/cases/integration/createEntity.test.ts +6 -9
  186. package/tests/cases/integration/createManyHasMany.test.ts +3 -3
  187. package/tests/cases/integration/createManyHasOne.test.ts +4 -4
  188. package/tests/cases/integration/createOneHasMany.test.ts +6 -9
  189. package/tests/cases/integration/createOneHasOne.test.ts +6 -6
  190. package/tests/cases/integration/createRelationInverseSide.test.ts +1 -1
  191. package/tests/cases/integration/createView.test.ts +6 -6
  192. package/tests/cases/integration/removeField.test.ts +6 -6
  193. package/tests/cases/integration/updateColumnDefinition.test.ts +4 -4
  194. package/tests/cases/integration/updateEntityName.test.ts +1 -20
  195. package/tests/cases/integration/updateFieldName.test.ts +1 -21
  196. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -2
  197. package/tests/cases/integration/updateView.test.ts +18 -18
  198. package/tests/scripts/checkCreateConsistentMigrations.ts +1 -1
  199. package/tests/src/tests.ts +13 -8
  200. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts +0 -8
  201. package/dist/src/modifications/utils/renameConstraintsHelper.d.ts.map +0 -1
  202. package/dist/src/modifications/utils/renameConstraintsHelper.js +0 -31
  203. package/dist/src/modifications/utils/renameConstraintsHelper.js.map +0 -1
  204. package/dist/src/modifications/utils/schemaMeta.d.ts +0 -8
  205. package/dist/src/modifications/utils/schemaMeta.d.ts.map +0 -1
  206. package/dist/src/modifications/utils/schemaMeta.js +0 -13
  207. package/dist/src/modifications/utils/schemaMeta.js.map +0 -1
  208. package/dist/tests/cases/integration/takenIndexName.test.d.ts +0 -2
  209. package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +0 -1
  210. package/dist/tests/cases/integration/takenIndexName.test.js +0 -307
  211. package/dist/tests/cases/integration/takenIndexName.test.js.map +0 -1
  212. package/src/modifications/utils/renameConstraintsHelper.ts +0 -34
  213. package/src/modifications/utils/schemaMeta.ts +0 -18
  214. package/tests/cases/integration/takenIndexName.test.ts +0 -314
@@ -33,11 +33,11 @@ testMigrations('create one has many relation (post with locales)', {
33
33
  primary: 'id',
34
34
  primaryColumn: 'id',
35
35
  tableName: 'post_locale',
36
- unique: {},
36
+ unique: [],
37
37
  eventLog: {
38
38
  enabled: true,
39
39
  },
40
- indexes: {},
40
+ indexes: [],
41
41
  },
42
42
  },
43
43
  {
@@ -92,10 +92,7 @@ testMigrations('create one has many relation (post with locales)', {
92
92
  {
93
93
  modification: 'createUniqueConstraint',
94
94
  entityName: 'PostLocale',
95
- unique: {
96
- name: 'unique_PostLocale_post_locale_5759e8',
97
- fields: ['post', 'locale'],
98
- },
95
+ unique: { fields: ['post', 'locale'] },
99
96
  },
100
97
  ],
101
98
  sql: SQL`CREATE TABLE "post_locale" (
@@ -119,8 +116,8 @@ testMigrations('create one has many relation (post with locales)', {
119
116
  ALTER TABLE "post_locale"
120
117
  ADD "post_id" uuid NOT NULL;
121
118
  ALTER TABLE "post_locale"
122
- ADD CONSTRAINT "fk_post_locale_post_id_f3d2e5" FOREIGN KEY ("post_id") REFERENCES "post"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
123
- CREATE INDEX "post_locale_post_id_index" ON "post_locale" ("post_id");
119
+ ADD FOREIGN KEY ("post_id") REFERENCES "post"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
120
+ CREATE INDEX ON "post_locale" ("post_id");
124
121
  ALTER TABLE "post_locale"
125
- ADD CONSTRAINT "unique_PostLocale_post_locale_5759e8" UNIQUE ("post_id", "locale");`,
122
+ ADD UNIQUE ("post_id", "locale");`,
126
123
  })
@@ -30,11 +30,11 @@ testMigrations('create one has one relation (site with settings)', {
30
30
  primary: 'id',
31
31
  primaryColumn: 'id',
32
32
  tableName: 'site',
33
- unique: {},
33
+ unique: [],
34
34
  eventLog: {
35
35
  enabled: true,
36
36
  },
37
- indexes: {},
37
+ indexes: [],
38
38
  },
39
39
  },
40
40
  {
@@ -53,11 +53,11 @@ testMigrations('create one has one relation (site with settings)', {
53
53
  primary: 'id',
54
54
  primaryColumn: 'id',
55
55
  tableName: 'site_setting',
56
- unique: {},
56
+ unique: [],
57
57
  eventLog: {
58
58
  enabled: true,
59
59
  },
60
- indexes: {},
60
+ indexes: [],
61
61
  },
62
62
  },
63
63
  {
@@ -140,8 +140,8 @@ testMigrations('create one has one relation (site with settings)', {
140
140
  ALTER TABLE "site"
141
141
  ADD "setting_id" uuid;
142
142
  ALTER TABLE "site"
143
- ADD CONSTRAINT "fk_site_setting_id_6a4aa6" FOREIGN KEY ("setting_id") REFERENCES "site_setting"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
143
+ ADD FOREIGN KEY ("setting_id") REFERENCES "site_setting"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
144
144
  ALTER TABLE "site"
145
- ADD CONSTRAINT "unique_Site_setting_8653a0" UNIQUE ("setting_id");
145
+ ADD UNIQUE ("setting_id");
146
146
  `,
147
147
  })
@@ -56,5 +56,5 @@ testMigrations('create inverse side relation together with changing onDelete beh
56
56
  },
57
57
  },
58
58
  ],
59
- sql: SQL`ALTER TABLE "post_locale" DROP CONSTRAINT "fk_post_locale_post_id_f3d2e5"; ALTER TABLE "post_locale" ADD CONSTRAINT "fk_post_locale_post_id_f3d2e5" FOREIGN KEY ("post_id") REFERENCES "post"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;`,
59
+ sql: SQL`ALTER TABLE "post_locale" DROP CONSTRAINT "fk_post_locale_post_id_post_id"; ALTER TABLE "post_locale" ADD FOREIGN KEY ("post_id") REFERENCES "post"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;`,
60
60
  })
@@ -33,7 +33,7 @@ testMigrations('create view', {
33
33
  name: 'AuthorStats',
34
34
  primary: 'id',
35
35
  primaryColumn: 'id',
36
- unique: {},
36
+ unique: [],
37
37
  fields: {
38
38
  id: {
39
39
  name: 'id',
@@ -68,7 +68,7 @@ testMigrations('create view', {
68
68
  eventLog: {
69
69
  enabled: true,
70
70
  },
71
- indexes: {},
71
+ indexes: [],
72
72
  },
73
73
  },
74
74
  {
@@ -129,8 +129,8 @@ testMigrations('create a relation and a view', {
129
129
  entity: { name: 'ArticleStats',
130
130
  primary: 'id',
131
131
  primaryColumn: 'id',
132
- unique: {},
133
- indexes: {},
132
+ unique: [],
133
+ indexes: [],
134
134
  fields: { id: { name: 'id', columnName: 'id', nullable: false, type: 'Uuid', columnType: 'uuid' },
135
135
  article: { name: 'article', inversedBy: 'stats', nullable: true, type: 'OneHasOne', target: 'Article', joiningColumn: { columnName: 'article_id', onDelete: 'restrict' } },
136
136
  visitCount: { name: 'visitCount', columnName: 'visit_count', nullable: true, type: 'Integer', columnType: 'integer' } },
@@ -151,8 +151,8 @@ testMigrations('create a relation and a view', {
151
151
  },
152
152
  ],
153
153
  sql: SQL`ALTER TABLE "article" ADD "category_id" uuid;
154
- ALTER TABLE "article" ADD CONSTRAINT "fk_article_category_id_703b8b" FOREIGN KEY ("category_id") REFERENCES "category"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
155
- CREATE INDEX "article_category_id_index" ON "article" ("category_id");
154
+ ALTER TABLE "article" ADD FOREIGN KEY ("category_id") REFERENCES "category"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
155
+ CREATE INDEX ON "article" ("category_id");
156
156
  CREATE VIEW "article_stats" AS SELECT 1;`,
157
157
  })
158
158
 
@@ -47,8 +47,8 @@ testMigrations('remove relation (one has many)', {
47
47
  .buildSchema(),
48
48
  diff: [
49
49
  {
50
- constraintName: 'unique_PostLocale_post_locale_5759e8',
51
50
  entityName: 'PostLocale',
51
+ fields: ['post', 'locale'],
52
52
  modification: 'removeUniqueConstraint',
53
53
  },
54
54
  {
@@ -57,7 +57,7 @@ testMigrations('remove relation (one has many)', {
57
57
  fieldName: 'post',
58
58
  },
59
59
  ],
60
- sql: SQL`ALTER TABLE "post_locale" DROP CONSTRAINT "unique_PostLocale_post_locale_5759e8";
60
+ sql: SQL`ALTER TABLE "post_locale" DROP CONSTRAINT "uniq_post_locale_post_id_locale";
61
61
  ALTER TABLE "post_locale" DROP "post_id";`,
62
62
  })
63
63
 
@@ -173,15 +173,15 @@ testMigrations('test drop index / unique when removing a field', {
173
173
  }, {
174
174
  modification: 'createUniqueConstraint',
175
175
  entityName: 'Article',
176
- unique: { name: 'unique_Article_title_author_7157ea', fields: ['title', 'author'] },
176
+ unique: { fields: ['title', 'author'] },
177
177
  }, {
178
178
  modification: 'createIndex',
179
179
  entityName: 'Article',
180
- index: { name: 'idx_Article_title_author_7157ea', fields: ['title', 'author'] },
180
+ index: { fields: ['title', 'author'] },
181
181
  }],
182
182
  sql: SQL`ALTER TABLE "article" DROP "author_id";
183
183
  ALTER TABLE "article" ADD "author" text;
184
- ALTER TABLE "article" ADD CONSTRAINT "unique_Article_title_author_7157ea" UNIQUE ("title", "author");
185
- CREATE INDEX "idx_Article_title_author_7157ea" ON "article" ("title", "author");`,
184
+ ALTER TABLE "article" ADD UNIQUE ("title", "author");
185
+ CREATE INDEX ON "article" ("title", "author");`,
186
186
  })
187
187
 
@@ -124,8 +124,8 @@ testMigrations('recreate view dependent on entity after changing column type', {
124
124
  name: 'AuthorMetaX',
125
125
  primary: 'id',
126
126
  primaryColumn: 'id',
127
- unique: {},
128
- indexes: {},
127
+ unique: [],
128
+ indexes: [],
129
129
  fields: {
130
130
  id: {
131
131
  name: 'id',
@@ -145,8 +145,8 @@ testMigrations('recreate view dependent on entity after changing column type', {
145
145
  name: 'AuthorMetaY',
146
146
  primary: 'id',
147
147
  primaryColumn: 'id',
148
- unique: {},
149
- indexes: {},
148
+ unique: [],
149
+ indexes: [],
150
150
  fields: {
151
151
  id: {
152
152
  name: 'id',
@@ -43,24 +43,6 @@ testMigrations('rename entity and table', {
43
43
  noDiff: true,
44
44
  })
45
45
 
46
- testMigrations('rename entity with a constraint', {
47
- originalSchema: new SchemaBuilder()
48
- .entity('Author', e => e.column('slug', c => c.type(Model.ColumnType.String).unique()))
49
- .buildSchema(),
50
- updatedSchema: new SchemaBuilder()
51
- .entity('User', e => e.tableName('author').column('slug', c => c.type(Model.ColumnType.String).unique()))
52
- .buildSchema(),
53
- diff: [
54
- {
55
- modification: 'updateEntityName',
56
- entityName: 'Author',
57
- newEntityName: 'User',
58
- },
59
- ],
60
- sql: SQL`ALTER TABLE "author"
61
- RENAME CONSTRAINT "unique_Author_slug_a645b0" TO "unique_User_slug_d61dea";`,
62
- noDiff: true,
63
- })
64
46
 
65
47
  testMigrations('rename entity with one-has-one (constraint)', {
66
48
  originalSchema: new SchemaBuilder()
@@ -78,8 +60,7 @@ testMigrations('rename entity with one-has-one (constraint)', {
78
60
  newEntityName: 'User',
79
61
  },
80
62
  ],
81
- sql: SQL`ALTER TABLE "author"
82
- RENAME CONSTRAINT "unique_Author_content_b64856" TO "unique_User_content_43c77f";`,
63
+ sql: SQL``,
83
64
  noDiff: true,
84
65
  })
85
66
 
@@ -43,25 +43,6 @@ testMigrations('rename a field with column', {
43
43
  })
44
44
 
45
45
 
46
- testMigrations('rename a field with a constraint', {
47
- originalSchema: new SchemaBuilder()
48
- .entity('Author', e => e.column('slug', c => c.type(Model.ColumnType.String).unique()))
49
- .buildSchema(),
50
- updatedSchema: new SchemaBuilder()
51
- .entity('Author', e => e.column('identifier', c => c.type(Model.ColumnType.String).columnName('slug').unique()))
52
- .buildSchema(),
53
- diff: [
54
- {
55
- modification: 'updateFieldName',
56
- entityName: 'Author',
57
- fieldName: 'slug',
58
- newFieldName: 'identifier',
59
- },
60
- ],
61
- sql: SQL`ALTER TABLE "author"
62
- RENAME CONSTRAINT "unique_Author_slug_a645b0" TO "unique_Author_identifier_4eb9f2";`,
63
- noDiff: true,
64
- })
65
46
 
66
47
  testMigrations('rename a field with one-has-one', {
67
48
  originalSchema: new SchemaBuilder()
@@ -80,8 +61,7 @@ testMigrations('rename a field with one-has-one', {
80
61
  newFieldName: 'description',
81
62
  },
82
63
  ],
83
- sql: SQL`ALTER TABLE "author"
84
- RENAME CONSTRAINT "unique_Author_content_b64856" TO "unique_Author_description_00f1ef";`,
64
+ sql: SQL``,
85
65
  noDiff: true,
86
66
  })
87
67
 
@@ -26,6 +26,6 @@ testMigrations('update relation ondelete to cascade', {
26
26
  onDelete: Model.OnDelete.cascade,
27
27
  },
28
28
  ],
29
- sql: SQL`ALTER TABLE "post" DROP CONSTRAINT "fk_post_category_id_820029";
30
- ALTER TABLE "post" ADD CONSTRAINT "fk_post_category_id_820029" FOREIGN KEY ("category_id") REFERENCES "category"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;`,
29
+ sql: SQL`ALTER TABLE "post" DROP CONSTRAINT "fk_post_category_id_category_id";
30
+ ALTER TABLE "post" ADD FOREIGN KEY ("category_id") REFERENCES "category"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;`,
31
31
  })
@@ -59,7 +59,7 @@ testMigrations('update a view 1', {
59
59
  name: 'Author',
60
60
  primary: 'id',
61
61
  primaryColumn: 'id',
62
- unique: {},
62
+ unique: [],
63
63
  fields: {
64
64
  id: {
65
65
  name: 'id',
@@ -83,7 +83,7 @@ testMigrations('update a view 1', {
83
83
  eventLog: {
84
84
  enabled: true,
85
85
  },
86
- indexes: {},
86
+ indexes: [],
87
87
  },
88
88
  },
89
89
  {
@@ -92,7 +92,7 @@ testMigrations('update a view 1', {
92
92
  name: 'Author2',
93
93
  primary: 'id',
94
94
  primaryColumn: 'id',
95
- unique: {},
95
+ unique: [],
96
96
  fields: {
97
97
  id: {
98
98
  name: 'id',
@@ -119,7 +119,7 @@ testMigrations('update a view 1', {
119
119
  eventLog: {
120
120
  enabled: true,
121
121
  },
122
- indexes: {},
122
+ indexes: [],
123
123
  },
124
124
  },
125
125
  {
@@ -128,7 +128,7 @@ testMigrations('update a view 1', {
128
128
  name: 'Author3',
129
129
  primary: 'id',
130
130
  primaryColumn: 'id',
131
- unique: {},
131
+ unique: [],
132
132
  fields: {
133
133
  id: {
134
134
  name: 'id',
@@ -155,7 +155,7 @@ testMigrations('update a view 1', {
155
155
  eventLog: {
156
156
  enabled: true,
157
157
  },
158
- indexes: {},
158
+ indexes: [],
159
159
  },
160
160
  },
161
161
  ],
@@ -203,7 +203,7 @@ testMigrations('update a view 2', {
203
203
  name: 'Author2',
204
204
  primary: 'id',
205
205
  primaryColumn: 'id',
206
- unique: {},
206
+ unique: [],
207
207
  fields: {
208
208
  id: {
209
209
  name: 'id',
@@ -230,7 +230,7 @@ testMigrations('update a view 2', {
230
230
  eventLog: {
231
231
  enabled: true,
232
232
  },
233
- indexes: {},
233
+ indexes: [],
234
234
  },
235
235
  },
236
236
  {
@@ -239,7 +239,7 @@ testMigrations('update a view 2', {
239
239
  name: 'Author3',
240
240
  primary: 'id',
241
241
  primaryColumn: 'id',
242
- unique: {},
242
+ unique: [],
243
243
  fields: {
244
244
  id: {
245
245
  name: 'id',
@@ -266,7 +266,7 @@ testMigrations('update a view 2', {
266
266
  eventLog: {
267
267
  enabled: true,
268
268
  },
269
- indexes: {},
269
+ indexes: [],
270
270
  },
271
271
  },
272
272
  ],
@@ -309,7 +309,7 @@ testMigrations('update a view 3', {
309
309
  name: 'Author3',
310
310
  primary: 'id',
311
311
  primaryColumn: 'id',
312
- unique: {},
312
+ unique: [],
313
313
  fields: {
314
314
  id: {
315
315
  name: 'id',
@@ -336,7 +336,7 @@ testMigrations('update a view 3', {
336
336
  eventLog: {
337
337
  enabled: true,
338
338
  },
339
- indexes: {},
339
+ indexes: [],
340
340
  },
341
341
  },
342
342
  ],
@@ -384,7 +384,7 @@ testMigrations('update a view 4', {
384
384
  name: 'Author',
385
385
  primary: 'id',
386
386
  primaryColumn: 'id',
387
- unique: {},
387
+ unique: [],
388
388
  fields: {
389
389
  id: {
390
390
  name: 'id',
@@ -408,7 +408,7 @@ testMigrations('update a view 4', {
408
408
  eventLog: {
409
409
  enabled: true,
410
410
  },
411
- indexes: {},
411
+ indexes: [],
412
412
  },
413
413
  },
414
414
  {
@@ -417,7 +417,7 @@ testMigrations('update a view 4', {
417
417
  name: 'Author2',
418
418
  primary: 'id',
419
419
  primaryColumn: 'id',
420
- unique: {},
420
+ unique: [],
421
421
  fields: {
422
422
  id: {
423
423
  name: 'id',
@@ -444,7 +444,7 @@ testMigrations('update a view 4', {
444
444
  eventLog: {
445
445
  enabled: true,
446
446
  },
447
- indexes: {},
447
+ indexes: [],
448
448
  },
449
449
  },
450
450
  {
@@ -453,7 +453,7 @@ testMigrations('update a view 4', {
453
453
  name: 'Author3',
454
454
  primary: 'id',
455
455
  primaryColumn: 'id',
456
- unique: {},
456
+ unique: [],
457
457
  fields: {
458
458
  id: {
459
459
  name: 'id',
@@ -480,7 +480,7 @@ testMigrations('update a view 4', {
480
480
  eventLog: {
481
481
  enabled: true,
482
482
  },
483
- indexes: {},
483
+ indexes: [],
484
484
  },
485
485
  },
486
486
  ],
@@ -18,7 +18,7 @@ import { emptySchema, schemaType } from '@contember/schema-utils'
18
18
  for (const migration of await migrationsResolver.getMigrations()) {
19
19
  const nextSchema = migrator.applyModifications(schema, migration.modifications, migration.formatVersion)
20
20
  schemaType(nextSchema)
21
- const { meta, ...nextSchemaWithoutMeta } = nextSchema
21
+ const nextSchemaWithoutMeta = nextSchema
22
22
  differ.diffSchemas(schema, nextSchemaWithoutMeta)
23
23
 
24
24
  schema = nextSchema
@@ -2,8 +2,7 @@ import { Migration, ModificationHandlerFactory, SchemaDiffer, SchemaMigrator, VE
2
2
  import { Acl, Model } from '@contember/schema'
3
3
  import { createMigrationBuilder } from '@contember/database-migrations'
4
4
  import { assert, describe, it } from 'vitest'
5
- import { SchemaWithMeta } from '../../src/modifications/utils/schemaMeta'
6
- import { emptySchema } from '@contember/schema-utils'
5
+ import { dummySchemaDatabaseMetadata, emptySchema } from '@contember/schema-utils'
7
6
 
8
7
  const modificationFactory = new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)
9
8
  const schemaMigrator = new SchemaMigrator(modificationFactory)
@@ -40,11 +39,11 @@ export function testDiffSchemas(
40
39
  console.log(JSON.stringify(actualDiff))
41
40
  throw e
42
41
  }
43
- const { meta, ...schema } = schemaMigrator.applyModifications(
42
+ const schema = schemaMigrator.applyModifications(
44
43
  { ...emptySchema, model: originalModel, acl: originalAcl },
45
44
  actualDiff,
46
45
  VERSION_LATEST,
47
- ) as SchemaWithMeta
46
+ )
48
47
  assert.deepStrictEqual(schema, {
49
48
  ...emptySchema,
50
49
  model: updatedModel,
@@ -59,11 +58,11 @@ export function testApplyDiff(
59
58
  originalAcl: Acl.Schema = emptyAcl,
60
59
  expectedAcl: Acl.Schema = emptyAcl,
61
60
  ) {
62
- const { meta, ...actualSchema } = schemaMigrator.applyModifications(
61
+ const actualSchema = schemaMigrator.applyModifications(
63
62
  { ...emptySchema, model: originalModel, acl: originalAcl },
64
63
  diff,
65
64
  VERSION_LATEST,
66
- ) as SchemaWithMeta
65
+ )
67
66
 
68
67
  assert.deepStrictEqual(actualSchema, {
69
68
  ...emptySchema,
@@ -76,8 +75,14 @@ export function testGenerateSql(originalSchema: Model.Schema, diff: Migration.Mo
76
75
  let schema = { ...emptySchema, model: originalSchema, acl: emptyAcl }
77
76
  const builder = createMigrationBuilder()
78
77
  for (let { modification, ...data } of diff) {
79
- const modificationHandler = modificationFactory.create(modification, data, schema, { formatVersion: VERSION_LATEST, systemSchema: 'system' })
80
- modificationHandler.createSql(builder)
78
+ const modificationHandler = modificationFactory.create(modification, data, schema, {
79
+ formatVersion: VERSION_LATEST,
80
+ })
81
+ modificationHandler.createSql(builder, {
82
+ systemSchema: 'system',
83
+ databaseMetadata: dummySchemaDatabaseMetadata,
84
+ invalidateDatabaseMetadata: () => null,
85
+ })
81
86
  schema = modificationHandler.getSchemaUpdater()({ schema })
82
87
  }
83
88
  const actual = builder.getSql().replace(/\s+/g, ' ').trim()
@@ -1,8 +0,0 @@
1
- import { Model } from '@contember/schema';
2
- import { MigrationBuilder } from '@contember/database-migrations';
3
- import { EntityUpdater } from './schemaUpdateUtils';
4
- declare type NameGenerator = (constraint: Model.UniqueConstraint) => string | null;
5
- export declare const renameConstraintsSqlBuilder: (builder: MigrationBuilder, entity: Model.Entity, nameGenerator: NameGenerator) => void;
6
- export declare const renameConstraintSchemaUpdater: (nameGenerator: NameGenerator) => EntityUpdater;
7
- export {};
8
- //# sourceMappingURL=renameConstraintsHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renameConstraintsHelper.d.ts","sourceRoot":"","sources":["../../../../src/modifications/utils/renameConstraintsHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,aAAK,aAAa,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAA;AAC1E,eAAO,MAAM,2BAA2B,YAC9B,gBAAgB,UACjB,MAAM,MAAM,iBACL,aAAa,SAU5B,CAAA;AAED,eAAO,MAAM,6BAA6B,kBAAmB,aAAa,KAAG,aAa5E,CAAA"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renameConstraintSchemaUpdater = exports.renameConstraintsSqlBuilder = void 0;
4
- const renameConstraintsSqlBuilder = (builder, entity, nameGenerator) => {
5
- const tableName = entity.tableName;
6
- for (const constraint of Object.values(entity.unique)) {
7
- const newName = nameGenerator(constraint);
8
- if (newName === null) {
9
- continue;
10
- }
11
- builder.renameConstraint(tableName, constraint.name, newName);
12
- }
13
- };
14
- exports.renameConstraintsSqlBuilder = renameConstraintsSqlBuilder;
15
- const renameConstraintSchemaUpdater = (nameGenerator) => {
16
- return ({ entity }) => {
17
- const newConstraints = {};
18
- for (const constraint of Object.values(entity.unique)) {
19
- const newName = nameGenerator(constraint);
20
- if (newName === null) {
21
- newConstraints[constraint.name] = constraint;
22
- }
23
- else {
24
- newConstraints[newName] = { ...constraint, name: newName };
25
- }
26
- }
27
- return { ...entity, unique: newConstraints };
28
- };
29
- };
30
- exports.renameConstraintSchemaUpdater = renameConstraintSchemaUpdater;
31
- //# sourceMappingURL=renameConstraintsHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renameConstraintsHelper.js","sourceRoot":"","sources":["../../../../src/modifications/utils/renameConstraintsHelper.ts"],"names":[],"mappings":";;;AAKO,MAAM,2BAA2B,GAAG,CAC1C,OAAyB,EACzB,MAAoB,EACpB,aAA4B,EAC3B,EAAE;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,OAAO,KAAK,IAAI,EAAE;YACrB,SAAQ;SACR;QACD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC7D;AACF,CAAC,CAAA;AAbY,QAAA,2BAA2B,+BAavC;AAEM,MAAM,6BAA6B,GAAG,CAAC,aAA4B,EAAiB,EAAE;IAC5F,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACrB,MAAM,cAAc,GAAsC,EAAE,CAAA;QAC5D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACtD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,OAAO,KAAK,IAAI,EAAE;gBACrB,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAA;aAC5C;iBAAM;gBACN,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;aAC1D;SACD;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAC7C,CAAC,CAAA;AACF,CAAC,CAAA;AAbY,QAAA,6BAA6B,iCAazC"}
@@ -1,8 +0,0 @@
1
- import { Schema } from '@contember/schema';
2
- export declare type SchemaWithMeta = Schema & {
3
- meta?: {
4
- takenIndexNames: Record<string, true>;
5
- };
6
- };
7
- export declare const resolveIndexName: (schema: SchemaWithMeta, indexName: string) => string;
8
- //# sourceMappingURL=schemaMeta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaMeta.d.ts","sourceRoot":"","sources":["../../../../src/modifications/utils/schemaMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,oBAAY,cAAc,GACvB,MAAM,GACN;IACD,IAAI,CAAC,EAAE;QACN,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KACrC,CAAA;CACD,CAAA;AAEF,eAAO,MAAM,gBAAgB,WAAY,cAAc,aAAa,MAAM,KAAG,MAO5E,CAAA"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveIndexName = void 0;
4
- const resolveIndexName = (schema, indexName) => {
5
- for (let i = 0;; i++) {
6
- const name = indexName + (i === 0 ? '' : `${i}`);
7
- if (!schema.meta || !(name in schema.meta.takenIndexNames)) {
8
- return name;
9
- }
10
- }
11
- };
12
- exports.resolveIndexName = resolveIndexName;
13
- //# sourceMappingURL=schemaMeta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaMeta.js","sourceRoot":"","sources":["../../../../src/modifications/utils/schemaMeta.ts"],"names":[],"mappings":";;;AAUO,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,SAAiB,EAAU,EAAE;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAA;SACX;KACD;AACF,CAAC,CAAA;AAPY,QAAA,gBAAgB,oBAO5B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=takenIndexName.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"takenIndexName.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/integration/takenIndexName.test.ts"],"names":[],"mappings":""}