@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
@@ -1,307 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const tests_1 = require("../../src/tests");
5
- const src_1 = require("../../../src");
6
- const schema_utils_1 = require("@contember/schema-utils");
7
- const schema_1 = require("@contember/schema");
8
- const tags_1 = require("../../src/tags");
9
- (0, vitest_1.test)('taken fk index name', () => {
10
- (0, tests_1.testGenerateSql)(schema_utils_1.emptyModelSchema, [
11
- src_1.createEntityModification.createModification({
12
- entity: {
13
- fields: {
14
- id: {
15
- columnName: 'id',
16
- name: 'id',
17
- nullable: false,
18
- type: schema_1.Model.ColumnType.Uuid,
19
- columnType: 'uuid',
20
- },
21
- },
22
- name: 'Post',
23
- primary: 'id',
24
- primaryColumn: 'id',
25
- tableName: 'post',
26
- unique: {},
27
- eventLog: {
28
- enabled: true,
29
- },
30
- indexes: {},
31
- },
32
- }),
33
- src_1.createEntityModification.createModification({
34
- entity: {
35
- fields: {
36
- id: {
37
- columnName: 'id',
38
- name: 'id',
39
- nullable: false,
40
- type: schema_1.Model.ColumnType.Uuid,
41
- columnType: 'uuid',
42
- },
43
- },
44
- name: 'Author',
45
- primary: 'id',
46
- primaryColumn: 'id',
47
- tableName: 'author',
48
- unique: {},
49
- eventLog: {
50
- enabled: true,
51
- },
52
- indexes: {},
53
- },
54
- }),
55
- src_1.createRelationModification.createModification({
56
- entityName: 'Post',
57
- owningSide: {
58
- name: 'author',
59
- type: schema_1.Model.RelationType.ManyHasOne,
60
- target: 'Author',
61
- joiningColumn: {
62
- columnName: 'author_id',
63
- onDelete: schema_1.Model.OnDelete.cascade,
64
- },
65
- nullable: true,
66
- },
67
- }),
68
- src_1.updateEntityNameModification.createModification({
69
- entityName: 'Post',
70
- newEntityName: 'Article',
71
- tableName: 'article',
72
- }),
73
- src_1.createEntityModification.createModification({
74
- entity: {
75
- fields: {
76
- id: {
77
- columnName: 'id',
78
- name: 'id',
79
- nullable: false,
80
- type: schema_1.Model.ColumnType.Uuid,
81
- columnType: 'uuid',
82
- },
83
- },
84
- name: 'Post',
85
- primary: 'id',
86
- primaryColumn: 'id',
87
- tableName: 'post',
88
- unique: {},
89
- eventLog: {
90
- enabled: true,
91
- },
92
- indexes: {},
93
- },
94
- }),
95
- src_1.createRelationModification.createModification({
96
- entityName: 'Post',
97
- owningSide: {
98
- name: 'author',
99
- type: schema_1.Model.RelationType.ManyHasOne,
100
- target: 'Author',
101
- joiningColumn: {
102
- columnName: 'author_id',
103
- onDelete: schema_1.Model.OnDelete.cascade,
104
- },
105
- nullable: true,
106
- },
107
- }),
108
- ], (0, tags_1.SQL) `CREATE TABLE "post" (
109
- "id" uuid PRIMARY KEY NOT NULL
110
- );
111
- CREATE TRIGGER "log_event"
112
- AFTER INSERT OR UPDATE OR DELETE ON "post"
113
- FOR EACH ROW
114
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
115
- CREATE CONSTRAINT TRIGGER "log_event_trx"
116
- AFTER INSERT OR UPDATE OR DELETE ON "post"
117
- DEFERRABLE INITIALLY DEFERRED
118
- FOR EACH ROW
119
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
120
- CREATE TABLE "author" (
121
- "id" uuid PRIMARY KEY NOT NULL
122
- );
123
- CREATE TRIGGER "log_event"
124
- AFTER INSERT OR UPDATE OR DELETE ON "author"
125
- FOR EACH ROW
126
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
127
- CREATE CONSTRAINT TRIGGER "log_event_trx"
128
- AFTER INSERT OR UPDATE OR DELETE ON "author"
129
- DEFERRABLE INITIALLY DEFERRED
130
- FOR EACH ROW
131
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
132
- ALTER TABLE "post"
133
- ADD "author_id" uuid;
134
- ALTER TABLE "post"
135
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
136
- CREATE INDEX "post_author_id_index" ON "post" ("author_id");
137
- ALTER TABLE "post" RENAME TO "article";
138
- CREATE TABLE "post" (
139
- "id" uuid PRIMARY KEY NOT NULL
140
- );
141
- CREATE TRIGGER "log_event"
142
- AFTER INSERT OR UPDATE OR DELETE ON "post"
143
- FOR EACH ROW
144
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
145
- CREATE CONSTRAINT TRIGGER "log_event_trx"
146
- AFTER INSERT OR UPDATE OR DELETE ON "post"
147
- DEFERRABLE INITIALLY DEFERRED
148
- FOR EACH ROW
149
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
150
- ALTER TABLE "post"
151
- ADD "author_id" uuid;
152
- ALTER TABLE "post"
153
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
154
- CREATE INDEX "post_author_id_index1" ON "post" ("author_id");`);
155
- });
156
- (0, vitest_1.test)('taken junction table index name', () => {
157
- (0, tests_1.testGenerateSql)(schema_utils_1.emptyModelSchema, [
158
- src_1.createEntityModification.createModification({
159
- entity: {
160
- fields: {
161
- id: {
162
- columnName: 'id',
163
- name: 'id',
164
- nullable: false,
165
- type: schema_1.Model.ColumnType.Uuid,
166
- columnType: 'uuid',
167
- },
168
- },
169
- name: 'Post',
170
- primary: 'id',
171
- primaryColumn: 'id',
172
- tableName: 'post',
173
- unique: {},
174
- eventLog: {
175
- enabled: true,
176
- },
177
- indexes: {},
178
- },
179
- }),
180
- src_1.createEntityModification.createModification({
181
- entity: {
182
- fields: {
183
- id: {
184
- columnName: 'id',
185
- name: 'id',
186
- nullable: false,
187
- type: schema_1.Model.ColumnType.Uuid,
188
- columnType: 'uuid',
189
- },
190
- },
191
- name: 'Author',
192
- primary: 'id',
193
- primaryColumn: 'id',
194
- tableName: 'author',
195
- unique: {},
196
- eventLog: {
197
- enabled: true,
198
- },
199
- indexes: {},
200
- },
201
- }),
202
- src_1.createRelationModification.createModification({
203
- entityName: 'Post',
204
- owningSide: {
205
- name: 'authors',
206
- type: schema_1.Model.RelationType.ManyHasMany,
207
- target: 'Author',
208
- joiningTable: {
209
- tableName: 'post_authors',
210
- joiningColumn: {
211
- columnName: 'post_id',
212
- onDelete: schema_1.Model.OnDelete.cascade,
213
- },
214
- inverseJoiningColumn: {
215
- columnName: 'author_id',
216
- onDelete: schema_1.Model.OnDelete.cascade,
217
- },
218
- eventLog: {
219
- enabled: true,
220
- },
221
- },
222
- },
223
- }),
224
- src_1.removeFieldModification.createModification({
225
- entityName: 'Post',
226
- fieldName: 'authors',
227
- }),
228
- src_1.createRelationModification.createModification({
229
- entityName: 'Post',
230
- owningSide: {
231
- name: 'authors',
232
- type: schema_1.Model.RelationType.ManyHasMany,
233
- target: 'Author',
234
- joiningTable: {
235
- tableName: 'post_authors',
236
- joiningColumn: {
237
- columnName: 'post_id',
238
- onDelete: schema_1.Model.OnDelete.cascade,
239
- },
240
- inverseJoiningColumn: {
241
- columnName: 'author_id',
242
- onDelete: schema_1.Model.OnDelete.cascade,
243
- },
244
- eventLog: {
245
- enabled: true,
246
- },
247
- },
248
- },
249
- }),
250
- ], (0, tags_1.SQL) `CREATE TABLE "post" (
251
- "id" uuid PRIMARY KEY NOT NULL
252
- );
253
- CREATE TRIGGER "log_event"
254
- AFTER INSERT OR UPDATE OR DELETE ON "post"
255
- FOR EACH ROW
256
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
257
- CREATE CONSTRAINT TRIGGER "log_event_trx"
258
- AFTER INSERT OR UPDATE OR DELETE ON "post"
259
- DEFERRABLE INITIALLY DEFERRED
260
- FOR EACH ROW
261
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
262
- CREATE TABLE "author" (
263
- "id" uuid PRIMARY KEY NOT NULL
264
- );
265
- CREATE TRIGGER "log_event"
266
- AFTER INSERT OR UPDATE OR DELETE ON "author"
267
- FOR EACH ROW
268
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
269
- CREATE CONSTRAINT TRIGGER "log_event_trx"
270
- AFTER INSERT OR UPDATE OR DELETE ON "author"
271
- DEFERRABLE INITIALLY DEFERRED
272
- FOR EACH ROW
273
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
274
- CREATE TABLE "post_authors" (
275
- "post_id" uuid NOT NULL REFERENCES "post"("id") ON DELETE CASCADE,
276
- "author_id" uuid NOT NULL REFERENCES "author"("id") ON DELETE CASCADE
277
- );
278
- ALTER TABLE "post_authors"
279
- ADD CONSTRAINT "post_authors_pkey" PRIMARY KEY ("post_id", "author_id");
280
- CREATE TRIGGER "log_event"
281
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
282
- FOR EACH ROW
283
- EXECUTE PROCEDURE "system"."trigger_event"($pga$post_id$pga$, $pga$author_id$pga$);
284
- CREATE CONSTRAINT TRIGGER "log_event_trx"
285
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
286
- DEFERRABLE INITIALLY DEFERRED
287
- FOR EACH ROW
288
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
289
- DROP TABLE "post_authors";
290
- CREATE TABLE "post_authors" (
291
- "post_id" uuid NOT NULL REFERENCES "post"("id") ON DELETE CASCADE,
292
- "author_id" uuid NOT NULL REFERENCES "author"("id") ON DELETE CASCADE
293
- );
294
- ALTER TABLE "post_authors"
295
- ADD CONSTRAINT "post_authors_pkey1" PRIMARY KEY ("post_id", "author_id");
296
- CREATE TRIGGER "log_event"
297
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
298
- FOR EACH ROW
299
- EXECUTE PROCEDURE "system"."trigger_event"($pga$post_id$pga$, $pga$author_id$pga$);
300
- CREATE CONSTRAINT TRIGGER "log_event_trx"
301
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
302
- DEFERRABLE INITIALLY DEFERRED
303
- FOR EACH ROW
304
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
305
- `);
306
- });
307
- //# sourceMappingURL=takenIndexName.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"takenIndexName.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/takenIndexName.test.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { Model, Writable } from '@contember/schema'
2
- import { MigrationBuilder } from '@contember/database-migrations'
3
- import { EntityUpdater } from './schemaUpdateUtils'
4
-
5
- type NameGenerator = (constraint: Model.UniqueConstraint) => string | null
6
- export const renameConstraintsSqlBuilder = (
7
- builder: MigrationBuilder,
8
- entity: Model.Entity,
9
- nameGenerator: NameGenerator,
10
- ) => {
11
- const tableName = entity.tableName
12
- for (const constraint of Object.values(entity.unique)) {
13
- const newName = nameGenerator(constraint)
14
- if (newName === null) {
15
- continue
16
- }
17
- builder.renameConstraint(tableName, constraint.name, newName)
18
- }
19
- }
20
-
21
- export const renameConstraintSchemaUpdater = (nameGenerator: NameGenerator): EntityUpdater => {
22
- return ({ entity }) => {
23
- const newConstraints: Writable<Model.UniqueConstraints> = {}
24
- for (const constraint of Object.values(entity.unique)) {
25
- const newName = nameGenerator(constraint)
26
- if (newName === null) {
27
- newConstraints[constraint.name] = constraint
28
- } else {
29
- newConstraints[newName] = { ...constraint, name: newName }
30
- }
31
- }
32
- return { ...entity, unique: newConstraints }
33
- }
34
- }
@@ -1,18 +0,0 @@
1
- import { Schema } from '@contember/schema'
2
-
3
- export type SchemaWithMeta =
4
- & Schema
5
- & {
6
- meta?: {
7
- takenIndexNames: Record<string, true>
8
- }
9
- }
10
-
11
- export const resolveIndexName = (schema: SchemaWithMeta, indexName: string): string => {
12
- for (let i = 0; ; i++) {
13
- const name = indexName + (i === 0 ? '' : `${i}`)
14
- if (!schema.meta || !(name in schema.meta.takenIndexNames)) {
15
- return name
16
- }
17
- }
18
- }
@@ -1,314 +0,0 @@
1
- import { test } from 'vitest'
2
- import { testGenerateSql } from '../../src/tests'
3
- import {
4
- createEntityModification,
5
- createRelationModification,
6
- removeFieldModification,
7
- updateEntityNameModification,
8
- } from '../../../src'
9
- import { emptyModelSchema } from '@contember/schema-utils'
10
- import { Model } from '@contember/schema'
11
- import { SQL } from '../../src/tags'
12
-
13
- test('taken fk index name', () => {
14
- testGenerateSql(emptyModelSchema, [
15
- createEntityModification.createModification({
16
- entity: {
17
- fields: {
18
- id: {
19
- columnName: 'id',
20
- name: 'id',
21
- nullable: false,
22
- type: Model.ColumnType.Uuid,
23
- columnType: 'uuid',
24
- },
25
- },
26
- name: 'Post',
27
- primary: 'id',
28
- primaryColumn: 'id',
29
- tableName: 'post',
30
- unique: {},
31
- eventLog: {
32
- enabled: true,
33
- },
34
- indexes: {},
35
- },
36
- }),
37
- createEntityModification.createModification({
38
- entity: {
39
- fields: {
40
- id: {
41
- columnName: 'id',
42
- name: 'id',
43
- nullable: false,
44
- type: Model.ColumnType.Uuid,
45
- columnType: 'uuid',
46
- },
47
- },
48
- name: 'Author',
49
- primary: 'id',
50
- primaryColumn: 'id',
51
- tableName: 'author',
52
- unique: {},
53
- eventLog: {
54
- enabled: true,
55
- },
56
- indexes: {},
57
- },
58
- }),
59
- createRelationModification.createModification({
60
- entityName: 'Post',
61
- owningSide: {
62
- name: 'author',
63
- type: Model.RelationType.ManyHasOne,
64
- target: 'Author',
65
- joiningColumn: {
66
- columnName: 'author_id',
67
- onDelete: Model.OnDelete.cascade,
68
- },
69
- nullable: true,
70
- },
71
-
72
- }),
73
- updateEntityNameModification.createModification({
74
- entityName: 'Post',
75
- newEntityName: 'Article',
76
- tableName: 'article',
77
- }),
78
- createEntityModification.createModification({
79
- entity: {
80
- fields: {
81
- id: {
82
- columnName: 'id',
83
- name: 'id',
84
- nullable: false,
85
- type: Model.ColumnType.Uuid,
86
- columnType: 'uuid',
87
- },
88
- },
89
- name: 'Post',
90
- primary: 'id',
91
- primaryColumn: 'id',
92
- tableName: 'post',
93
- unique: {},
94
- eventLog: {
95
- enabled: true,
96
- },
97
- indexes: {},
98
- },
99
- }),
100
- createRelationModification.createModification({
101
- entityName: 'Post',
102
- owningSide: {
103
- name: 'author',
104
- type: Model.RelationType.ManyHasOne,
105
- target: 'Author',
106
- joiningColumn: {
107
- columnName: 'author_id',
108
- onDelete: Model.OnDelete.cascade,
109
- },
110
- nullable: true,
111
- },
112
-
113
- }),
114
- ], SQL`CREATE TABLE "post" (
115
- "id" uuid PRIMARY KEY NOT NULL
116
- );
117
- CREATE TRIGGER "log_event"
118
- AFTER INSERT OR UPDATE OR DELETE ON "post"
119
- FOR EACH ROW
120
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
121
- CREATE CONSTRAINT TRIGGER "log_event_trx"
122
- AFTER INSERT OR UPDATE OR DELETE ON "post"
123
- DEFERRABLE INITIALLY DEFERRED
124
- FOR EACH ROW
125
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
126
- CREATE TABLE "author" (
127
- "id" uuid PRIMARY KEY NOT NULL
128
- );
129
- CREATE TRIGGER "log_event"
130
- AFTER INSERT OR UPDATE OR DELETE ON "author"
131
- FOR EACH ROW
132
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
133
- CREATE CONSTRAINT TRIGGER "log_event_trx"
134
- AFTER INSERT OR UPDATE OR DELETE ON "author"
135
- DEFERRABLE INITIALLY DEFERRED
136
- FOR EACH ROW
137
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
138
- ALTER TABLE "post"
139
- ADD "author_id" uuid;
140
- ALTER TABLE "post"
141
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
142
- CREATE INDEX "post_author_id_index" ON "post" ("author_id");
143
- ALTER TABLE "post" RENAME TO "article";
144
- CREATE TABLE "post" (
145
- "id" uuid PRIMARY KEY NOT NULL
146
- );
147
- CREATE TRIGGER "log_event"
148
- AFTER INSERT OR UPDATE OR DELETE ON "post"
149
- FOR EACH ROW
150
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
151
- CREATE CONSTRAINT TRIGGER "log_event_trx"
152
- AFTER INSERT OR UPDATE OR DELETE ON "post"
153
- DEFERRABLE INITIALLY DEFERRED
154
- FOR EACH ROW
155
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
156
- ALTER TABLE "post"
157
- ADD "author_id" uuid;
158
- ALTER TABLE "post"
159
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
160
- CREATE INDEX "post_author_id_index1" ON "post" ("author_id");`)
161
- })
162
-
163
-
164
- test('taken junction table index name', () => {
165
- testGenerateSql(emptyModelSchema, [
166
- createEntityModification.createModification({
167
- entity: {
168
- fields: {
169
- id: {
170
- columnName: 'id',
171
- name: 'id',
172
- nullable: false,
173
- type: Model.ColumnType.Uuid,
174
- columnType: 'uuid',
175
- },
176
- },
177
- name: 'Post',
178
- primary: 'id',
179
- primaryColumn: 'id',
180
- tableName: 'post',
181
- unique: {},
182
- eventLog: {
183
- enabled: true,
184
- },
185
- indexes: {},
186
- },
187
- }),
188
- createEntityModification.createModification({
189
- entity: {
190
- fields: {
191
- id: {
192
- columnName: 'id',
193
- name: 'id',
194
- nullable: false,
195
- type: Model.ColumnType.Uuid,
196
- columnType: 'uuid',
197
- },
198
- },
199
- name: 'Author',
200
- primary: 'id',
201
- primaryColumn: 'id',
202
- tableName: 'author',
203
- unique: {},
204
- eventLog: {
205
- enabled: true,
206
- },
207
- indexes: {},
208
- },
209
- }),
210
- createRelationModification.createModification({
211
- entityName: 'Post',
212
- owningSide: {
213
- name: 'authors',
214
- type: Model.RelationType.ManyHasMany,
215
- target: 'Author',
216
- joiningTable: {
217
- tableName: 'post_authors',
218
- joiningColumn: {
219
- columnName: 'post_id',
220
- onDelete: Model.OnDelete.cascade,
221
- },
222
- inverseJoiningColumn: {
223
- columnName: 'author_id',
224
- onDelete: Model.OnDelete.cascade,
225
- },
226
- eventLog: {
227
- enabled: true,
228
- },
229
- },
230
- },
231
- }),
232
- removeFieldModification.createModification({
233
- entityName: 'Post',
234
- fieldName: 'authors',
235
- }),
236
- createRelationModification.createModification({
237
- entityName: 'Post',
238
- owningSide: {
239
- name: 'authors',
240
- type: Model.RelationType.ManyHasMany,
241
- target: 'Author',
242
- joiningTable: {
243
- tableName: 'post_authors',
244
- joiningColumn: {
245
- columnName: 'post_id',
246
- onDelete: Model.OnDelete.cascade,
247
- },
248
- inverseJoiningColumn: {
249
- columnName: 'author_id',
250
- onDelete: Model.OnDelete.cascade,
251
- },
252
- eventLog: {
253
- enabled: true,
254
- },
255
- },
256
- },
257
- }),
258
- ], SQL`CREATE TABLE "post" (
259
- "id" uuid PRIMARY KEY NOT NULL
260
- );
261
- CREATE TRIGGER "log_event"
262
- AFTER INSERT OR UPDATE OR DELETE ON "post"
263
- FOR EACH ROW
264
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
265
- CREATE CONSTRAINT TRIGGER "log_event_trx"
266
- AFTER INSERT OR UPDATE OR DELETE ON "post"
267
- DEFERRABLE INITIALLY DEFERRED
268
- FOR EACH ROW
269
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
270
- CREATE TABLE "author" (
271
- "id" uuid PRIMARY KEY NOT NULL
272
- );
273
- CREATE TRIGGER "log_event"
274
- AFTER INSERT OR UPDATE OR DELETE ON "author"
275
- FOR EACH ROW
276
- EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
277
- CREATE CONSTRAINT TRIGGER "log_event_trx"
278
- AFTER INSERT OR UPDATE OR DELETE ON "author"
279
- DEFERRABLE INITIALLY DEFERRED
280
- FOR EACH ROW
281
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
282
- CREATE TABLE "post_authors" (
283
- "post_id" uuid NOT NULL REFERENCES "post"("id") ON DELETE CASCADE,
284
- "author_id" uuid NOT NULL REFERENCES "author"("id") ON DELETE CASCADE
285
- );
286
- ALTER TABLE "post_authors"
287
- ADD CONSTRAINT "post_authors_pkey" PRIMARY KEY ("post_id", "author_id");
288
- CREATE TRIGGER "log_event"
289
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
290
- FOR EACH ROW
291
- EXECUTE PROCEDURE "system"."trigger_event"($pga$post_id$pga$, $pga$author_id$pga$);
292
- CREATE CONSTRAINT TRIGGER "log_event_trx"
293
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
294
- DEFERRABLE INITIALLY DEFERRED
295
- FOR EACH ROW
296
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
297
- DROP TABLE "post_authors";
298
- CREATE TABLE "post_authors" (
299
- "post_id" uuid NOT NULL REFERENCES "post"("id") ON DELETE CASCADE,
300
- "author_id" uuid NOT NULL REFERENCES "author"("id") ON DELETE CASCADE
301
- );
302
- ALTER TABLE "post_authors"
303
- ADD CONSTRAINT "post_authors_pkey1" PRIMARY KEY ("post_id", "author_id");
304
- CREATE TRIGGER "log_event"
305
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
306
- FOR EACH ROW
307
- EXECUTE PROCEDURE "system"."trigger_event"($pga$post_id$pga$, $pga$author_id$pga$);
308
- CREATE CONSTRAINT TRIGGER "log_event_trx"
309
- AFTER INSERT OR UPDATE OR DELETE ON "post_authors"
310
- DEFERRABLE INITIALLY DEFERRED
311
- FOR EACH ROW
312
- EXECUTE PROCEDURE "system"."trigger_event_commit"();
313
- `)
314
- })