@contember/engine-system-api 1.2.1 → 1.3.0-alpha.2

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 (182) hide show
  1. package/dist/src/SystemContainer.d.ts +1 -12
  2. package/dist/src/SystemContainer.d.ts.map +1 -1
  3. package/dist/src/SystemContainer.js +1 -6
  4. package/dist/src/SystemContainer.js.map +1 -1
  5. package/dist/src/bin/runMigrations.d.ts +2 -0
  6. package/dist/src/bin/runMigrations.d.ts.map +1 -0
  7. package/dist/src/bin/runMigrations.js +31 -0
  8. package/dist/src/bin/runMigrations.js.map +1 -0
  9. package/dist/src/index.d.ts +1 -1
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +1 -3
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/src/migrations/2018-08-04-102200-init.d.ts +3 -0
  14. package/dist/src/migrations/2018-08-04-102200-init.d.ts.map +1 -0
  15. package/dist/src/migrations/2018-08-04-102200-init.js +37 -0
  16. package/dist/src/migrations/2018-08-04-102200-init.js.map +1 -0
  17. package/dist/src/migrations/2018-08-05-130501-trigger-event-function.d.ts +3 -0
  18. package/dist/src/migrations/2018-08-05-130501-trigger-event-function.d.ts.map +1 -0
  19. package/dist/src/migrations/2018-08-05-130501-trigger-event-function.js +99 -0
  20. package/dist/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -0
  21. package/dist/src/migrations/2019-01-14-143432-event-trx-id.d.ts +3 -0
  22. package/dist/src/migrations/2019-01-14-143432-event-trx-id.d.ts.map +1 -0
  23. package/dist/src/migrations/2019-01-14-143432-event-trx-id.js +17 -0
  24. package/dist/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -0
  25. package/dist/src/migrations/2019-02-04-154500-event-rebase.d.ts +3 -0
  26. package/dist/src/migrations/2019-02-04-154500-event-rebase.d.ts.map +1 -0
  27. package/dist/src/migrations/2019-02-04-154500-event-rebase.js +59 -0
  28. package/dist/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -0
  29. package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.d.ts +3 -0
  30. package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.d.ts.map +1 -0
  31. package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.js +12 -0
  32. package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -0
  33. package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts +3 -0
  34. package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts.map +1 -0
  35. package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.js +66 -0
  36. package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -0
  37. package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.d.ts +3 -0
  38. package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.d.ts.map +1 -0
  39. package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.js +21 -0
  40. package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -0
  41. package/dist/src/migrations/2021-03-23-110000-timestamp-fix.d.ts +3 -0
  42. package/dist/src/migrations/2021-03-23-110000-timestamp-fix.d.ts.map +1 -0
  43. package/dist/src/migrations/2021-03-23-110000-timestamp-fix.js +15 -0
  44. package/dist/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -0
  45. package/dist/src/migrations/2021-05-07-155800-event-log-rework.js +2 -2
  46. package/dist/src/migrations/2021-12-21-155500-events-up.d.ts +3 -0
  47. package/dist/src/migrations/2021-12-21-155500-events-up.d.ts.map +1 -0
  48. package/dist/src/migrations/2021-12-21-155500-events-up.js +15 -0
  49. package/dist/src/migrations/2021-12-21-155500-events-up.js.map +1 -0
  50. package/dist/src/migrations/2022-02-08-132600-fn-search-path.d.ts +3 -0
  51. package/dist/src/migrations/2022-02-08-132600-fn-search-path.d.ts.map +1 -0
  52. package/dist/src/migrations/2022-02-08-132600-fn-search-path.js +16 -0
  53. package/dist/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -0
  54. package/dist/src/migrations/2022-02-08-140500-drop-deadcode.d.ts +3 -0
  55. package/dist/src/migrations/2022-02-08-140500-drop-deadcode.d.ts.map +1 -0
  56. package/dist/src/migrations/2022-02-08-140500-drop-deadcode.js +11 -0
  57. package/dist/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -0
  58. package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts +3 -0
  59. package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts.map +1 -0
  60. package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.js +50 -0
  61. package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -0
  62. package/dist/src/migrations/2022-10-03-110000-table-on-delete.d.ts +4 -0
  63. package/dist/src/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -0
  64. package/dist/src/migrations/2022-10-03-110000-table-on-delete.js +56 -0
  65. package/dist/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -0
  66. package/dist/src/migrations/runner.d.ts +16 -3
  67. package/dist/src/migrations/runner.d.ts.map +1 -1
  68. package/dist/src/migrations/runner.js +64 -10
  69. package/dist/src/migrations/runner.js.map +1 -1
  70. package/dist/src/migrations/snapshot-factory.d.ts +6 -0
  71. package/dist/src/migrations/snapshot-factory.d.ts.map +1 -0
  72. package/dist/src/migrations/snapshot-factory.js +46 -0
  73. package/dist/src/migrations/snapshot-factory.js.map +1 -0
  74. package/dist/src/migrations/snapshot.d.ts +3 -0
  75. package/dist/src/migrations/snapshot.d.ts.map +1 -0
  76. package/dist/src/migrations/snapshot.js +172 -0
  77. package/dist/src/migrations/snapshot.js.map +1 -0
  78. package/dist/src/model/ProjectInitializer.d.ts +6 -10
  79. package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
  80. package/dist/src/model/ProjectInitializer.js +11 -29
  81. package/dist/src/model/ProjectInitializer.js.map +1 -1
  82. package/dist/src/model/database/DatabaseContext.d.ts +5 -4
  83. package/dist/src/model/database/DatabaseContext.d.ts.map +1 -1
  84. package/dist/src/model/database/DatabaseContext.js +7 -7
  85. package/dist/src/model/database/DatabaseContext.js.map +1 -1
  86. package/dist/src/model/dtos/ExecutedMigration.d.ts +2 -1
  87. package/dist/src/model/dtos/ExecutedMigration.d.ts.map +1 -1
  88. package/dist/src/model/dtos/ExecutedMigration.js +2 -1
  89. package/dist/src/model/dtos/ExecutedMigration.js.map +1 -1
  90. package/dist/src/model/events/EventResponseBuilder.d.ts +2 -2
  91. package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -1
  92. package/dist/src/model/events/EventResponseBuilder.js +10 -10
  93. package/dist/src/model/events/EventResponseBuilder.js.map +1 -1
  94. package/dist/src/model/events/EventResponseHelper.d.ts +1 -1
  95. package/dist/src/model/events/EventResponseHelper.d.ts.map +1 -1
  96. package/dist/src/model/events/index.d.ts +1 -0
  97. package/dist/src/model/events/index.d.ts.map +1 -1
  98. package/dist/src/model/events/index.js +1 -0
  99. package/dist/src/model/events/index.js.map +1 -1
  100. package/dist/src/model/events/types.d.ts +56 -0
  101. package/dist/src/model/events/types.d.ts.map +1 -0
  102. package/dist/src/model/events/types.js +51 -0
  103. package/dist/src/model/events/types.js.map +1 -0
  104. package/dist/src/model/helpers/index.d.ts +0 -1
  105. package/dist/src/model/helpers/index.d.ts.map +1 -1
  106. package/dist/src/model/helpers/index.js +0 -1
  107. package/dist/src/model/helpers/index.js.map +1 -1
  108. package/dist/src/model/migrations/ProjectMigrator.js +1 -1
  109. package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
  110. package/dist/src/model/migrations/SchemaVersionBuilder.d.ts +18 -0
  111. package/dist/src/model/migrations/SchemaVersionBuilder.d.ts.map +1 -1
  112. package/dist/src/model/migrations/SchemaVersionBuilder.js +5 -4
  113. package/dist/src/model/migrations/SchemaVersionBuilder.js.map +1 -1
  114. package/dist/src/model/queries/events/EventQueryHelpers.d.ts +2 -2
  115. package/dist/src/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
  116. package/dist/src/model/queries/events/EventQueryHelpers.js +7 -7
  117. package/dist/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  118. package/dist/src/model/queries/events/EventsQuery.d.ts +2 -2
  119. package/dist/src/model/queries/events/EventsQuery.d.ts.map +1 -1
  120. package/dist/src/model/queries/events/EventsQuery.js.map +1 -1
  121. package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +1 -0
  122. package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
  123. package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js +2 -1
  124. package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
  125. package/dist/src/tsconfig.tsbuildinfo +1 -1
  126. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.d.ts +2 -0
  127. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.d.ts.map +1 -0
  128. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js +40 -0
  129. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js.map +1 -0
  130. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  131. package/package.json +13 -14
  132. package/src/SystemContainer.ts +0 -15
  133. package/src/bin/runMigrations.ts +35 -0
  134. package/src/index.ts +0 -2
  135. package/src/migrations/{2018-08-04-102200-init.sql → 2018-08-04-102200-init.ts} +8 -0
  136. package/src/migrations/{2018-08-05-130501-trigger-event-function.sql → 2018-08-05-130501-trigger-event-function.ts} +8 -0
  137. package/src/migrations/{2019-01-14-143432-event-trx-id.sql → 2019-01-14-143432-event-trx-id.ts} +8 -0
  138. package/src/migrations/{2019-02-04-154500-event-rebase.sql → 2019-02-04-154500-event-rebase.ts} +9 -0
  139. package/src/migrations/2019-03-18-104147-event-run-migration-struct.ts +11 -0
  140. package/src/migrations/{2019-07-29-103000-trigger-event-function-fix.sql → 2019-07-29-103000-trigger-event-function-fix.ts} +8 -0
  141. package/src/migrations/{2019-11-28-100000-missing-setting-fallback.sql → 2019-11-28-100000-missing-setting-fallback.ts} +8 -0
  142. package/src/migrations/{2021-03-23-110000-timestamp-fix.sql → 2021-03-23-110000-timestamp-fix.ts} +8 -0
  143. package/src/migrations/2021-05-07-155800-event-log-rework.ts +2 -2
  144. package/src/migrations/{2021-12-21-155500-events-up.sql → 2021-12-21-155500-events-up.ts} +8 -0
  145. package/src/migrations/{2022-02-08-132600-fn-search-path.sql → 2022-02-08-132600-fn-search-path.ts} +8 -0
  146. package/src/migrations/2022-02-08-140500-drop-deadcode.ts +10 -0
  147. package/src/migrations/{2022-02-08-144400-dynamic-stage-schema.sql → 2022-02-08-144400-dynamic-stage-schema.ts} +8 -0
  148. package/src/migrations/2022-10-03-110000-table-on-delete.ts +66 -0
  149. package/src/migrations/runner.ts +79 -15
  150. package/src/migrations/snapshot-factory.ts +45 -0
  151. package/src/migrations/snapshot-template-end.txt +1 -0
  152. package/src/migrations/snapshot-template-start.txt +2 -0
  153. package/src/migrations/snapshot.ts +169 -0
  154. package/src/model/ProjectInitializer.ts +15 -50
  155. package/src/model/database/DatabaseContext.ts +12 -8
  156. package/src/model/dtos/ExecutedMigration.ts +1 -0
  157. package/src/model/events/EventResponseBuilder.ts +3 -3
  158. package/src/model/events/EventResponseHelper.ts +1 -1
  159. package/src/model/events/index.ts +1 -0
  160. package/src/model/events/types.ts +63 -0
  161. package/src/model/helpers/index.ts +0 -1
  162. package/src/model/migrations/ProjectMigrator.ts +1 -1
  163. package/src/model/migrations/SchemaVersionBuilder.ts +3 -2
  164. package/src/model/queries/events/EventQueryHelpers.ts +2 -2
  165. package/src/model/queries/events/EventsQuery.ts +2 -2
  166. package/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts +3 -1
  167. package/src/tsconfig.json +10 -33
  168. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +42 -0
  169. package/tests/tsconfig.json +2 -6
  170. package/tsconfig.json +2 -6
  171. package/dist/src/model/helpers/SystemVariablesSetupHelper.d.ts +0 -5
  172. package/dist/src/model/helpers/SystemVariablesSetupHelper.d.ts.map +0 -1
  173. package/dist/src/model/helpers/SystemVariablesSetupHelper.js +0 -15
  174. package/dist/src/model/helpers/SystemVariablesSetupHelper.js.map +0 -1
  175. package/dist/tests/cases/integration/systemApi/projectInitializer.test.d.ts +0 -2
  176. package/dist/tests/cases/integration/systemApi/projectInitializer.test.d.ts.map +0 -1
  177. package/dist/tests/cases/integration/systemApi/projectInitializer.test.js +0 -26
  178. package/dist/tests/cases/integration/systemApi/projectInitializer.test.js.map +0 -1
  179. package/src/migrations/2019-03-18-104147-event-run-migration-struct.sql +0 -3
  180. package/src/migrations/2022-02-08-140500-drop-deadcode.sql +0 -2
  181. package/src/model/helpers/SystemVariablesSetupHelper.ts +0 -14
  182. package/tests/cases/integration/systemApi/projectInitializer.test.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2021-03-23-110000-timestamp-fix.d.ts","sourceRoot":"","sources":["../../../src/migrations/2021-03-23-110000-timestamp-fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAWjE,yBAA+B,OAAO,EAAE,gBAAgB,iBAEvD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ ALTER TABLE "schema_migration"
5
+ ALTER "executed_at" TYPE TIMESTAMPTZ,
6
+ ALTER "executed_at" SET DEFAULT now();
7
+
8
+ ALTER TABLE "event"
9
+ ALTER "created_at" TYPE TIMESTAMPTZ;
10
+ `;
11
+ async function default_1(builder) {
12
+ builder.sql(sql);
13
+ }
14
+ exports.default = default_1;
15
+ //# sourceMappingURL=2021-03-23-110000-timestamp-fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2021-03-23-110000-timestamp-fix.js","sourceRoot":"","sources":["../../../src/migrations/2021-03-23-110000-timestamp-fix.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;;;;;CAOX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -39,7 +39,7 @@ async function default_1(builder, args) {
39
39
  identity_id UUID NOT NULL,
40
40
  transaction_id UUID DEFAULT COALESCE(
41
41
  (NULLIF(CURRENT_SETTING('system.transaction_id'::TEXT, TRUE), ''::TEXT))::UUID,
42
- (SET_CONFIG('system.transaction_id'::TEXT, (uuid_generate_v4())::TEXT, TRUE))::UUID) NOT NULL
42
+ (SET_CONFIG('system.transaction_id'::TEXT, ("uuid_generate_v4"())::TEXT, TRUE))::UUID) NOT NULL
43
43
  )
44
44
  `);
45
45
  builder.sql(`
@@ -207,7 +207,7 @@ async function default_1(builder, args) {
207
207
 
208
208
  INSERT INTO "event_data" ("id", "type", "table_name", "row_ids", "values", "created_at", schema_id, identity_id)
209
209
  VALUES (
210
- uuid_generate_v4(),
210
+ "uuid_generate_v4"(),
211
211
  new_event_type,
212
212
  table_name,
213
213
  primary_values,
@@ -0,0 +1,3 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ export default function (builder: MigrationBuilder): Promise<void>;
3
+ //# sourceMappingURL=2021-12-21-155500-events-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2021-12-21-155500-events-up.d.ts","sourceRoot":"","sources":["../../../src/migrations/2021-12-21-155500-events-up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAWjE,yBAA+B,OAAO,EAAE,gBAAgB,iBAEvD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ CREATE INDEX event_data_created ON event_data (created_at);
5
+ CREATE INDEX transaction_applied ON stage_transaction (applied_at);
6
+
7
+ ALTER TABLE stage
8
+ DROP event_id;
9
+ DROP TABLE event_bak;
10
+ `;
11
+ async function default_1(builder) {
12
+ builder.sql(sql);
13
+ }
14
+ exports.default = default_1;
15
+ //# sourceMappingURL=2021-12-21-155500-events-up.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2021-12-21-155500-events-up.js","sourceRoot":"","sources":["../../../src/migrations/2021-12-21-155500-events-up.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;;;;;CAOX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -0,0 +1,3 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ export default function (builder: MigrationBuilder): Promise<void>;
3
+ //# sourceMappingURL=2022-02-08-132600-fn-search-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-132600-fn-search-path.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-132600-fn-search-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAYjE,yBAA+B,OAAO,EAAE,gBAAgB,iBAEvD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ DO LANGUAGE plpgsql
5
+ $$
6
+ BEGIN
7
+ EXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
8
+ EXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
9
+ END
10
+ $$
11
+ `;
12
+ async function default_1(builder) {
13
+ builder.sql(sql);
14
+ }
15
+ exports.default = default_1;
16
+ //# sourceMappingURL=2022-02-08-132600-fn-search-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-132600-fn-search-path.js","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-132600-fn-search-path.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;;;;;;CAQX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -0,0 +1,3 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ export default function (builder: MigrationBuilder): Promise<void>;
3
+ //# sourceMappingURL=2022-02-08-140500-drop-deadcode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-140500-drop-deadcode.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-140500-drop-deadcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAOjE,yBAA+B,OAAO,EAAE,gBAAgB,iBAEvD"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ DROP FUNCTION rebase_events_unsafe(head UUID, oldbase UUID, newbase UUID, appliedevents UUID[]);
5
+ DROP FUNCTION statement_trigger_event();
6
+ `;
7
+ async function default_1(builder) {
8
+ builder.sql(sql);
9
+ }
10
+ exports.default = default_1;
11
+ //# sourceMappingURL=2022-02-08-140500-drop-deadcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-140500-drop-deadcode.js","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-140500-drop-deadcode.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;CAGX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -0,0 +1,3 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ export default function (builder: MigrationBuilder): Promise<void>;
3
+ //# sourceMappingURL=2022-02-08-144400-dynamic-stage-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-144400-dynamic-stage-schema.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-144400-dynamic-stage-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AA8CjE,yBAA+B,OAAO,EAAE,gBAAgB,iBAEvD"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ ALTER TABLE stage
5
+ ADD COLUMN schema TEXT UNIQUE;
6
+ UPDATE stage
7
+ SET schema = 'stage_' || slug;
8
+ ALTER TABLE stage
9
+ ALTER schema SET NOT NULL;
10
+
11
+ CREATE OR REPLACE FUNCTION trigger_event_commit() RETURNS TRIGGER AS
12
+ $$
13
+ BEGIN
14
+ PERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number
15
+
16
+ CASE WHEN
17
+ NULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL
18
+ AND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL
19
+ THEN
20
+ INSERT INTO stage_transaction(transaction_id, stage_id, applied_at)
21
+ VALUES (CURRENT_SETTING('system.transaction_id')::UUID,
22
+ (
23
+ SELECT id
24
+ FROM stage
25
+ WHERE schema = TG_TABLE_SCHEMA
26
+ ),
27
+ CLOCK_TIMESTAMP())
28
+ ON CONFLICT DO NOTHING;
29
+
30
+ PERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);
31
+ ELSE
32
+ -- do nothing
33
+ END CASE;
34
+
35
+ RETURN NULL;
36
+ END
37
+ $$ LANGUAGE plpgsql;
38
+
39
+ DO LANGUAGE plpgsql
40
+ $$
41
+ BEGIN
42
+ EXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
43
+ END
44
+ $$
45
+ `;
46
+ async function default_1(builder) {
47
+ builder.sql(sql);
48
+ }
49
+ exports.default = default_1;
50
+ //# sourceMappingURL=2022-02-08-144400-dynamic-stage-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-02-08-144400-dynamic-stage-schema.js","sourceRoot":"","sources":["../../../src/migrations/2022-02-08-144400-dynamic-stage-schema.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -0,0 +1,4 @@
1
+ import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations';
2
+ import { SystemMigrationArgs } from './types';
3
+ export default function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>): Promise<void>;
4
+ //# sourceMappingURL=2022-10-03-110000-table-on-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-10-03-110000-table-on-delete.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAI7C,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,iBA2DjG"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const database_1 = require("@contember/database");
4
+ const schema_utils_1 = require("@contember/schema-utils");
5
+ const schema_1 = require("@contember/schema");
6
+ async function default_1(builder, args) {
7
+ const schema = await args.schemaResolver(args.connection);
8
+ const stages = (await args.connection.query('SELECT schema FROM stage')).rows;
9
+ for (const entity of Object.values(schema.model.entities)) {
10
+ for (const field of Object.values(entity.fields)) {
11
+ const result = (0, schema_utils_1.acceptFieldVisitor)(schema.model, entity, field, {
12
+ visitManyHasOne: ({ entity, relation, targetEntity }) => {
13
+ return { relation, entity, targetEntity };
14
+ },
15
+ visitOneHasOneOwning: ({ entity, relation, targetEntity }) => {
16
+ return { relation, entity, targetEntity };
17
+ },
18
+ visitOneHasOneInverse: () => null,
19
+ visitManyHasManyInverse: () => null,
20
+ visitManyHasManyOwning: () => null,
21
+ visitOneHasMany: () => null,
22
+ visitColumn: () => null,
23
+ });
24
+ if (!result) {
25
+ continue;
26
+ }
27
+ const { targetEntity, relation } = result;
28
+ if (entity.view || targetEntity.view) {
29
+ continue;
30
+ }
31
+ if (relation.joiningColumn.onDelete === schema_1.Model.OnDelete.restrict) {
32
+ continue;
33
+ }
34
+ for (const stage of stages) {
35
+ const fkName = schema_utils_1.NamingHelper.createForeignKeyName(entity.tableName, relation.joiningColumn.columnName, targetEntity.tableName, targetEntity.primaryColumn);
36
+ const tableName = { name: entity.tableName, schema: stage.schema };
37
+ builder.dropConstraint(tableName, fkName);
38
+ const onDelete = {
39
+ [schema_1.Model.OnDelete.setNull]: 'SET NULL',
40
+ [schema_1.Model.OnDelete.cascade]: 'CASCADE',
41
+ }[relation.joiningColumn.onDelete];
42
+ builder.addConstraint(tableName, fkName, {
43
+ foreignKeys: {
44
+ columns: relation.joiningColumn.columnName,
45
+ references: `${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(targetEntity.tableName)}(${(0, database_1.wrapIdentifier)(targetEntity.primaryColumn)})`,
46
+ onDelete: onDelete,
47
+ },
48
+ deferrable: true,
49
+ deferred: false,
50
+ });
51
+ }
52
+ }
53
+ }
54
+ }
55
+ exports.default = default_1;
56
+ //# sourceMappingURL=2022-10-03-110000-table-on-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-10-03-110000-table-on-delete.js","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
- import { Migration } from '@contember/database-migrations';
2
- import { SystemMigrationArgs } from './types';
3
- export declare const getSystemMigrations: () => Promise<Migration<SystemMigrationArgs>[]>;
1
+ import { MigrationGroup } from '@contember/database-migrations';
2
+ import { DatabaseConfig } from '@contember/database';
3
+ import { DatabaseContextFactory, SchemaVersionBuilder } from '../model';
4
+ import { ProjectConfig } from '../types';
5
+ import { Logger } from '@contember/logger';
6
+ export declare class SystemMigrationsRunner {
7
+ private readonly databaseContextFactory;
8
+ private readonly project;
9
+ private readonly schema;
10
+ private readonly schemaVersionBuilder;
11
+ private readonly migrationGroups;
12
+ constructor(databaseContextFactory: DatabaseContextFactory, project: ProjectConfig & {
13
+ db: DatabaseConfig;
14
+ }, schema: string, schemaVersionBuilder: SchemaVersionBuilder, migrationGroups: Record<string, MigrationGroup<unknown>>);
15
+ run(logger: Logger): Promise<void>;
16
+ }
4
17
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAM1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,mBAAmB,QAAO,QAAQ,UAAU,mBAAmB,CAAC,EAAE,CAQ9E,CAAA"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0C,MAAM,gCAAgC,CAAA;AAqBvG,OAAO,EAAiD,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA0B1C,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,aAAa,GAAG;QAAE,EAAE,EAAE,cAAc,CAAA;KAAE,EAC/C,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAGpE,GAAG,CAAC,MAAM,EAAE,MAAM;CAqBxB"}
@@ -3,21 +3,75 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getSystemMigrations = void 0;
6
+ exports.SystemMigrationsRunner = void 0;
7
7
  const database_migrations_1 = require("@contember/database-migrations");
8
+ const _2018_08_04_102200_init_1 = __importDefault(require("./2018-08-04-102200-init"));
9
+ const _2018_08_05_130501_trigger_event_function_1 = __importDefault(require("./2018-08-05-130501-trigger-event-function"));
10
+ const _2019_01_14_143432_event_trx_id_1 = __importDefault(require("./2019-01-14-143432-event-trx-id"));
11
+ const _2019_02_04_154500_event_rebase_1 = __importDefault(require("./2019-02-04-154500-event-rebase"));
12
+ const _2019_03_18_104147_event_run_migration_struct_1 = __importDefault(require("./2019-03-18-104147-event-run-migration-struct"));
13
+ const _2019_07_29_103000_trigger_event_function_fix_1 = __importDefault(require("./2019-07-29-103000-trigger-event-function-fix"));
14
+ const _2019_11_28_100000_missing_setting_fallback_1 = __importDefault(require("./2019-11-28-100000-missing-setting-fallback"));
8
15
  const _2020_03_27_130000_project_migrations_1 = __importDefault(require("./2020-03-27-130000-project-migrations"));
9
16
  const _2020_05_06_150000_composed_primary_1 = __importDefault(require("./2020-05-06-150000-composed-primary"));
10
17
  const _2020_06_01_103000_event_trigger_perf_1 = __importDefault(require("./2020-06-01-103000-event-trigger-perf"));
18
+ const _2021_03_23_110000_timestamp_fix_1 = __importDefault(require("./2021-03-23-110000-timestamp-fix"));
11
19
  const _2021_05_07_155800_event_log_rework_1 = __importDefault(require("./2021-05-07-155800-event-log-rework"));
12
20
  const _2021_05_19_1232000_event_log_fix_constraint_1 = __importDefault(require("./2021-05-19-1232000-event-log-fix-constraint"));
13
- const getSystemMigrations = () => {
14
- return (0, database_migrations_1.loadMigrations)(process.env.CONTEMBER_SYSTEM_MIGRATIONS_DIR || __dirname, [
15
- new database_migrations_1.Migration('2020-03-27-130000-project-migrations', _2020_03_27_130000_project_migrations_1.default),
16
- new database_migrations_1.Migration('2020-05-06-150000-composed-primary', _2020_05_06_150000_composed_primary_1.default),
17
- new database_migrations_1.Migration('2020-06-01-103000-event-trigger-perf', _2020_06_01_103000_event_trigger_perf_1.default),
18
- new database_migrations_1.Migration('2021-05-07-155800-event-log-rework', _2021_05_07_155800_event_log_rework_1.default),
19
- new database_migrations_1.Migration('2021-05-19-1232000-event-log-fix-constraint', _2021_05_19_1232000_event_log_fix_constraint_1.default),
20
- ]);
21
+ const _2021_12_21_155500_events_up_1 = __importDefault(require("./2021-12-21-155500-events-up"));
22
+ const _2022_02_08_132600_fn_search_path_1 = __importDefault(require("./2022-02-08-132600-fn-search-path"));
23
+ const _2022_02_08_140500_drop_deadcode_1 = __importDefault(require("./2022-02-08-140500-drop-deadcode"));
24
+ const _2022_02_08_144400_dynamic_stage_schema_1 = __importDefault(require("./2022-02-08-144400-dynamic-stage-schema"));
25
+ const _2022_10_03_110000_table_on_delete_1 = __importDefault(require("./2022-10-03-110000-table-on-delete"));
26
+ const snapshot_1 = __importDefault(require("./snapshot"));
27
+ const database_1 = require("@contember/database");
28
+ const database_migrations_2 = require("@contember/database-migrations");
29
+ const database_migrations_3 = require("@contember/database-migrations");
30
+ const migrations = {
31
+ '2018-08-04-102200-init': _2018_08_04_102200_init_1.default,
32
+ '2018-08-05-130501-trigger-event-function': _2018_08_05_130501_trigger_event_function_1.default,
33
+ '2019-01-14-143432-event-trx-id': _2019_01_14_143432_event_trx_id_1.default,
34
+ '2019-02-04-154500-event-rebase': _2019_02_04_154500_event_rebase_1.default,
35
+ '2019-03-18-104147-event-run-migration-struct': _2019_03_18_104147_event_run_migration_struct_1.default,
36
+ '2019-07-29-103000-trigger-event-function-fix': _2019_07_29_103000_trigger_event_function_fix_1.default,
37
+ '2019-11-28-100000-missing-setting-fallback': _2019_11_28_100000_missing_setting_fallback_1.default,
38
+ '2020-03-27-130000-project-migrations': _2020_03_27_130000_project_migrations_1.default,
39
+ '2020-05-06-150000-composed-primary': _2020_05_06_150000_composed_primary_1.default,
40
+ '2020-06-01-103000-event-trigger-perf': _2020_06_01_103000_event_trigger_perf_1.default,
41
+ '2021-03-23-110000-timestamp-fix': _2021_03_23_110000_timestamp_fix_1.default,
42
+ '2021-05-07-155800-event-log-rework': _2021_05_07_155800_event_log_rework_1.default,
43
+ '2021-05-19-1232000-event-log-fix-constraint': _2021_05_19_1232000_event_log_fix_constraint_1.default,
44
+ '2021-12-21-155500-events-up': _2021_12_21_155500_events_up_1.default,
45
+ '2022-02-08-132600-fn-search-path': _2022_02_08_132600_fn_search_path_1.default,
46
+ '2022-02-08-140500-drop-deadcode': _2022_02_08_140500_drop_deadcode_1.default,
47
+ '2022-02-08-144400-dynamic-stage-schema': _2022_02_08_144400_dynamic_stage_schema_1.default,
48
+ '2022-10-03-110000-table-on-delete': _2022_10_03_110000_table_on_delete_1.default,
21
49
  };
22
- exports.getSystemMigrations = getSystemMigrations;
50
+ class SystemMigrationsRunner {
51
+ constructor(databaseContextFactory, project, schema, schemaVersionBuilder, migrationGroups) {
52
+ this.databaseContextFactory = databaseContextFactory;
53
+ this.project = project;
54
+ this.schema = schema;
55
+ this.schemaVersionBuilder = schemaVersionBuilder;
56
+ this.migrationGroups = migrationGroups;
57
+ }
58
+ async run(logger) {
59
+ await (0, database_1.createDatabaseIfNotExists)(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message));
60
+ const singleConnection = database_1.Connection.createSingle(this.project.db, err => logger.error(err));
61
+ await singleConnection.scope(async (connection) => {
62
+ const schemaResolver = (connection) => {
63
+ const dbContextMigrations = this.databaseContextFactory.create(connection);
64
+ return this.schemaVersionBuilder.buildSchema(dbContextMigrations);
65
+ };
66
+ const migrationResolver = new database_migrations_2.GroupMigrationsResolver(new database_migrations_3.SnapshotMigrationResolver(snapshot_1.default, migrations), Object.fromEntries(Object.entries(this.migrationGroups).map(([group, it]) => [group, new database_migrations_3.SnapshotMigrationResolver(it.snapshot, it.migrations, group.replace(/[^-_\w]+/g, '-'))])));
67
+ const migrationsRunner = new database_migrations_1.MigrationsRunner(connection, this.schema, migrationResolver);
68
+ await migrationsRunner.migrate(message => logger.warn(message), {
69
+ project: this.project,
70
+ schemaResolver,
71
+ });
72
+ });
73
+ await singleConnection.end();
74
+ }
75
+ }
76
+ exports.SystemMigrationsRunner = SystemMigrationsRunner;
23
77
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":";;;;;;AAAA,wEAA0E;AAC1E,mHAAsE;AACtE,+GAAkE;AAClE,mHAAqE;AACrE,+GAAiE;AACjE,iIAAiF;AAG1E,MAAM,mBAAmB,GAAG,GAA8C,EAAE;IAClF,OAAO,IAAA,oCAAc,EAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS,EAAE;QAC/E,IAAI,+BAAS,CAAC,sCAAsC,EAAE,+CAAiB,CAAC;QACxE,IAAI,+BAAS,CAAC,oCAAoC,EAAE,6CAAe,CAAC;QACpE,IAAI,+BAAS,CAAC,sCAAsC,EAAE,+CAAgB,CAAC;QACvE,IAAI,+BAAS,CAAC,oCAAoC,EAAE,6CAAc,CAAC;QACnE,IAAI,+BAAS,CAAC,6CAA6C,EAAE,sDAAqB,CAAC;KACnF,CAAC,CAAA;AACH,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations';
2
+ import { SystemMigrationArgs } from './types';
3
+ export declare const snapshotMigration: (sqlFactory: (args: {
4
+ randomUuidFn: string;
5
+ }) => string) => (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) => Promise<void>;
6
+ //# sourceMappingURL=snapshot-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-factory.d.ts","sourceRoot":"","sources":["../../../src/migrations/snapshot-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,iBAAiB,sBAAuB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,eAChE,gBAAgB,QAAQ,cAAc,mBAAmB,CAAC,kBAwCjF,CAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.snapshotMigration = void 0;
4
+ const snapshotMigration = (sqlFactory) => {
5
+ return async (builder, args) => {
6
+ const hasGenRandomUuid = await args.connection.query(`
7
+ SELECT 1
8
+ FROM pg_proc
9
+ JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
10
+ WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'
11
+ `);
12
+ let randomUuidFn = 'uuid_generate_v4';
13
+ if (hasGenRandomUuid.rowCount > 0) {
14
+ randomUuidFn = 'gen_random_uuid';
15
+ }
16
+ else {
17
+ const hasUuidGenV4 = await args.connection.query(`
18
+ SELECT 1
19
+ FROM pg_proc
20
+ JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
21
+ WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'uuid_generate_v4'
22
+ `);
23
+ if (hasUuidGenV4.rowCount === 0) {
24
+ builder.sql(`
25
+ CREATE FUNCTION "uuid_generate_v4"() RETURNS "uuid"
26
+ LANGUAGE "sql"
27
+ AS $$
28
+ SELECT OVERLAY(OVERLAY(md5(random()::TEXT || ':' || clock_timestamp()::TEXT) PLACING '4' FROM 13) PLACING
29
+ to_hex(floor(random() * (11 - 8 + 1) + 8)::INT)::TEXT FROM 17)::UUID;
30
+ $$;
31
+ `);
32
+ }
33
+ }
34
+ const sql = sqlFactory({ randomUuidFn });
35
+ builder.sql(sql);
36
+ builder.sql(`DO LANGUAGE plpgsql
37
+ $$
38
+ BEGIN
39
+ EXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
40
+ EXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
41
+ END
42
+ $$`);
43
+ };
44
+ };
45
+ exports.snapshotMigration = snapshotMigration;
46
+ //# sourceMappingURL=snapshot-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-factory.js","sourceRoot":"","sources":["../../../src/migrations/snapshot-factory.ts"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,GAAG,CAAC,UAAsD,EAAE,EAAE;IAC3F,OAAO,KAAK,EAAE,OAAyB,EAAE,IAAwC,EAAE,EAAE;QACpF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;;;;GAKpD,CAAC,CAAA;QACF,IAAI,YAAY,GAAW,kBAAkB,CAAA;QAC7C,IAAI,gBAAgB,CAAC,QAAQ,GAAG,CAAC,EAAE;YAClC,YAAY,GAAG,iBAAiB,CAAA;SAChC;aAAM;YACN,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;;;;IAKhD,CAAC,CAAA;YACF,IAAI,YAAY,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC;;;;;;;aAOH,CAAC,CAAA;aACV;SACD;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEhB,OAAO,CAAC,GAAG,CAAC;;;;;;GAMX,CAAC,CAAA;IAEH,CAAC,CAAA;AACF,CAAC,CAAA;AAzCY,QAAA,iBAAiB,qBAyC7B"}
@@ -0,0 +1,3 @@
1
+ declare const _default: (builder: import("node-pg-migrate").MigrationBuilder, args: import("@contember/database-migrations").MigrationArgs<import("./types").SystemMigrationArgs>) => Promise<void>;
2
+ export default _default;
3
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/migrations/snapshot.ts"],"names":[],"mappings":";AACA,wBAuKE"}