@contember/engine-system-api 1.3.6 → 1.4.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 (82) hide show
  1. package/dist/src/SystemContainer.d.ts +3 -2
  2. package/dist/src/SystemContainer.d.ts.map +1 -1
  3. package/dist/src/SystemContainer.js +2 -1
  4. package/dist/src/SystemContainer.js.map +1 -1
  5. package/dist/src/bin/runMigrations.js +2 -5
  6. package/dist/src/bin/runMigrations.js.map +1 -1
  7. package/dist/src/index.d.ts +1 -1
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +1 -2
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/migrations/2022-10-03-110000-table-on-delete.js +2 -2
  12. package/dist/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  13. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -1
  14. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js +10 -13
  15. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  16. package/dist/src/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -1
  17. package/dist/src/migrations/2023-10-19-173000-fix-unique.js +1 -1
  18. package/dist/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  19. package/dist/src/migrations/runner.d.ts +2 -3
  20. package/dist/src/migrations/runner.d.ts.map +1 -1
  21. package/dist/src/migrations/runner.js +1 -1
  22. package/dist/src/migrations/runner.js.map +1 -1
  23. package/dist/src/migrations/types.d.ts +2 -3
  24. package/dist/src/migrations/types.d.ts.map +1 -1
  25. package/dist/src/model/ProjectInitializer.d.ts +3 -3
  26. package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
  27. package/dist/src/model/ProjectInitializer.js +3 -3
  28. package/dist/src/model/ProjectInitializer.js.map +1 -1
  29. package/dist/src/model/database/DatabaseContext.d.ts +2 -3
  30. package/dist/src/model/database/DatabaseContext.d.ts.map +1 -1
  31. package/dist/src/model/database/DatabaseContext.js +2 -3
  32. package/dist/src/model/database/DatabaseContext.js.map +1 -1
  33. package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts +4 -5
  34. package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -1
  35. package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.js +1 -1
  36. package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  37. package/dist/src/model/metadata/index.d.ts +0 -2
  38. package/dist/src/model/metadata/index.d.ts.map +1 -1
  39. package/dist/src/model/metadata/index.js +0 -4
  40. package/dist/src/model/metadata/index.js.map +1 -1
  41. package/dist/src/tsconfig.tsbuildinfo +1 -1
  42. package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js +2 -2
  43. package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js.map +1 -1
  44. package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js +2 -2
  45. package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js.map +1 -1
  46. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js +15 -1
  47. package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js.map +1 -1
  48. package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.d.ts +2 -0
  49. package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.d.ts.map +1 -0
  50. package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.js +97 -0
  51. package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.js.map +1 -0
  52. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.js +12 -11
  53. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.js.map +1 -1
  54. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +14 -14
  56. package/src/SystemContainer.ts +3 -2
  57. package/src/bin/runMigrations.ts +4 -9
  58. package/src/index.ts +0 -1
  59. package/src/migrations/2022-10-03-110000-table-on-delete.ts +5 -5
  60. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +13 -16
  61. package/src/migrations/2023-10-19-173000-fix-unique.ts +3 -4
  62. package/src/migrations/runner.ts +3 -4
  63. package/src/migrations/types.ts +2 -3
  64. package/src/model/ProjectInitializer.ts +3 -3
  65. package/src/model/database/DatabaseContext.ts +2 -3
  66. package/src/model/metadata/SchemaDatabaseMetadataResolverStore.ts +6 -7
  67. package/src/model/metadata/index.ts +0 -2
  68. package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +2 -2
  69. package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +2 -2
  70. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +16 -2
  71. package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +106 -0
  72. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +12 -12
  73. package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts +0 -14
  74. package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts.map +0 -1
  75. package/dist/src/model/metadata/ResolvedDatabaseMetadata.js +0 -49
  76. package/dist/src/model/metadata/ResolvedDatabaseMetadata.js.map +0 -1
  77. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts +0 -8
  78. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts.map +0 -1
  79. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js +0 -98
  80. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js.map +0 -1
  81. package/src/model/metadata/ResolvedDatabaseMetadata.ts +0 -62
  82. package/src/model/metadata/SchemaDatabaseMetadataResolver.ts +0 -140
@@ -3,17 +3,17 @@ 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
+ const database_1 = require("@contember/database");
6
7
  const _2020_05_06_150000_composed_primary_1 = __importDefault(require("../../../src/migrations/2020-05-06-150000-composed-primary"));
7
8
  const database_migrations_1 = require("@contember/database-migrations");
8
9
  const engine_api_tester_1 = require("@contember/engine-api-tester");
9
10
  const vitest_1 = require("vitest");
10
- const schema_utils_1 = require("@contember/schema-utils");
11
11
  (0, vitest_1.test)('many-has-many-primary migration sql', async () => {
12
12
  const builder = (0, database_migrations_1.createMigrationBuilder)();
13
13
  await (0, _2020_05_06_150000_composed_primary_1.default)(builder, {
14
14
  connection: undefined,
15
15
  schemaResolver: () => Promise.resolve(engine_api_tester_1.sampleProject),
16
- databaseMetadataResolver: () => Promise.resolve(schema_utils_1.dummySchemaDatabaseMetadata),
16
+ databaseMetadataResolver: () => Promise.resolve(database_1.emptyDatabaseMetadata),
17
17
  project: {
18
18
  slug: 'test',
19
19
  stages: [
@@ -1 +1 @@
1
- {"version":3,"file":"2020-05-06-150000-composed-primary.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts"],"names":[],"mappings":";;;;;AAAA,qIAAkF;AAClF,wEAAuE;AACvE,oEAA4D;AAC5D,mCAAqC;AACrC,0DAAqE;AAErE,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,IAAA,6CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,SAAgB;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAa,CAAC;QACpD,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA2B,CAAC;QAC5E,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;gBACD;oBACC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;iBACf;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmMD,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"2020-05-06-150000-composed-primary.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts"],"names":[],"mappings":";;;;;AAAA,kDAA2D;AAC3D,qIAAkF;AAClF,wEAAuE;AACvE,oEAA4D;AAC5D,mCAAqC;AAErC,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,IAAA,6CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,SAAgB;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAa,CAAC;QACpD,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gCAAqB,CAAC;QACtE,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;gBACD;oBACC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;iBACf;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmMD,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -7,13 +7,13 @@ const _2020_06_01_103000_event_trigger_perf_1 = __importDefault(require("../../.
7
7
  const database_migrations_1 = require("@contember/database-migrations");
8
8
  const engine_api_tester_1 = require("@contember/engine-api-tester");
9
9
  const vitest_1 = require("vitest");
10
- const schema_utils_1 = require("@contember/schema-utils");
10
+ const database_1 = require("@contember/database");
11
11
  (0, vitest_1.test)('event-trigger-performance sql', async () => {
12
12
  const builder = (0, database_migrations_1.createMigrationBuilder)();
13
13
  await (0, _2020_06_01_103000_event_trigger_perf_1.default)(builder, {
14
14
  connection: undefined,
15
15
  schemaResolver: () => Promise.resolve(engine_api_tester_1.sampleProject),
16
- databaseMetadataResolver: () => Promise.resolve(schema_utils_1.dummySchemaDatabaseMetadata),
16
+ databaseMetadataResolver: () => Promise.resolve(database_1.emptyDatabaseMetadata),
17
17
  project: {
18
18
  slug: 'test',
19
19
  stages: [
@@ -1 +1 @@
1
- {"version":3,"file":"2020-06-01-103000-event-trigger-perf.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts"],"names":[],"mappings":";;;;;AAAA,yIAAoF;AACpF,wEAAuE;AACvE,oEAA4D;AAC5D,mCAAqC;AACrC,0DAAqE;AAGrE,IAAA,aAAI,EAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,IAAA,+CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,SAAgB;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAa,CAAC;QACpD,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA2B,CAAC;QAC5E,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;gBACD;oBACC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;iBACf;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyID,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"2020-06-01-103000-event-trigger-perf.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts"],"names":[],"mappings":";;;;;AAAA,yIAAoF;AACpF,wEAAuE;AACvE,oEAA4D;AAC5D,mCAAqC;AACrC,kDAA2D;AAG3D,IAAA,aAAI,EAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,IAAA,+CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,SAAgB;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAa,CAAC;QACpD,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gCAAqB,CAAC;QACtE,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;gBACD;oBACC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;iBACf;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyID,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -10,6 +10,7 @@ const schema_definition_1 = require("@contember/schema-definition");
10
10
  const schema_utils_1 = require("@contember/schema-utils");
11
11
  const schema_1 = require("@contember/schema");
12
12
  const database_tester_1 = require("@contember/database-tester");
13
+ const database_1 = require("@contember/database");
13
14
  (0, vitest_1.test)('table-on-delete test', async () => {
14
15
  const builder = (0, database_migrations_1.createMigrationBuilder)();
15
16
  const connection = (0, database_tester_1.createConnectionMock)([{
@@ -18,7 +19,20 @@ const database_tester_1 = require("@contember/database-tester");
18
19
  }]);
19
20
  await (0, _2022_10_03_110000_table_on_delete_1.default)(builder, {
20
21
  connection: connection,
21
- databaseMetadataResolver: () => Promise.resolve(schema_utils_1.dummySchemaDatabaseMetadata),
22
+ databaseMetadataResolver: () => Promise.resolve((0, database_1.createDatabaseMetadata)({
23
+ indexes: [],
24
+ uniqueConstraints: [],
25
+ foreignKeys: [{
26
+ constraintName: 'fk_post_author_id_author_id',
27
+ fromColumn: 'author_id',
28
+ fromTable: 'post',
29
+ toColumn: 'id',
30
+ toTable: 'author',
31
+ deleteAction: database_1.ForeignKeyDeleteAction.restrict,
32
+ deferrable: false,
33
+ deferred: false,
34
+ }],
35
+ })),
22
36
  schemaResolver: () => Promise.resolve(({ ...schema_utils_1.emptySchema, model: new schema_definition_1.SchemaBuilder()
23
37
  .entity('Post', entity => entity.manyHasOne('author', relation => relation.target('Author').onDelete(schema_1.Model.OnDelete.setNull)))
24
38
  .entity('Author', entity => entity)
@@ -1 +1 @@
1
- {"version":3,"file":"2022-10-03-110000-table-on-delete.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts"],"names":[],"mappings":";;;;;AAAA,mIAAiF;AACjF,wEAAuE;AACvE,mCAAqC;AACrC,oEAA4D;AAC5D,0DAAkF;AAClF,8CAAyC;AACzC,gEAAiE;AAGjE,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,CAAC;YACxC,GAAG,EAAE,0BAA0B;YAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;SAC9C,CAAC,CAAC,CAAA;IACH,MAAM,IAAA,4CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,UAAU;QACtB,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA2B,CAAC;QAC5E,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,0BAAW,EAAE,KAAK,EAAE,IAAI,iCAAa,EAAE;iBACjF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CACxB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CACnG;iBACA,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;iBAClC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;CAKD,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"2022-10-03-110000-table-on-delete.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts"],"names":[],"mappings":";;;;;AAAA,mIAAiF;AACjF,wEAAuE;AACvE,mCAAqC;AACrC,oEAA4D;AAC5D,0DAAqD;AACrD,8CAAyC;AACzC,gEAAiE;AACjE,kDAA2G;AAG3G,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,CAAC;YACxC,GAAG,EAAE,0BAA0B;YAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;SAC9C,CAAC,CAAC,CAAA;IACH,MAAM,IAAA,4CAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,UAAU;QACtB,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,iCAAsB,EAAC;YACtE,OAAO,EAAE,EAAE;YACX,iBAAiB,EAAE,EAAE;YACrB,WAAW,EAAE,CAAC;oBACb,cAAc,EAAE,6BAA6B;oBAC7C,UAAU,EAAE,WAAW;oBACvB,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,QAAQ;oBACjB,YAAY,EAAE,iCAAsB,CAAC,QAAQ;oBAC7C,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,KAAK;iBACf,CAAC;SACF,CAAC,CAAC;QACH,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,0BAAW,EAAE,KAAK,EAAE,IAAI,iCAAa,EAAE;iBACjF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CACxB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CACnG;iBACA,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;iBAClC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;;;;CAKD,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=2023-09-11-174000-fix-on-delete.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-09-11-174000-fix-on-delete.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const _2023_09_11_174000_fix_on_delete_1 = __importDefault(require("../../../src/migrations/2023-09-11-174000-fix-on-delete"));
7
+ const database_migrations_1 = require("@contember/database-migrations");
8
+ const vitest_1 = require("vitest");
9
+ const schema_definition_1 = require("@contember/schema-definition");
10
+ const schema_utils_1 = require("@contember/schema-utils");
11
+ const schema_1 = require("@contember/schema");
12
+ const database_tester_1 = require("@contember/database-tester");
13
+ const database_1 = require("@contember/database");
14
+ (0, vitest_1.test)('table-on-delete test', async () => {
15
+ const builder = (0, database_migrations_1.createMigrationBuilder)();
16
+ const connection = (0, database_tester_1.createConnectionMock)([{
17
+ sql: 'select schema from stage',
18
+ response: { rows: [{ schema: 'stage_live' }] },
19
+ }]);
20
+ await (0, _2023_09_11_174000_fix_on_delete_1.default)(builder, {
21
+ connection: connection,
22
+ databaseMetadataResolver: () => Promise.resolve((0, database_1.createDatabaseMetadata)({
23
+ indexes: [],
24
+ uniqueConstraints: [],
25
+ foreignKeys: [{
26
+ constraintName: 'fk_post_author_id_author_id',
27
+ fromColumn: 'author_id',
28
+ fromTable: 'post',
29
+ toColumn: 'id',
30
+ toTable: 'author',
31
+ deleteAction: database_1.ForeignKeyDeleteAction.cascade,
32
+ deferrable: false,
33
+ deferred: false,
34
+ }],
35
+ })),
36
+ schemaResolver: () => Promise.resolve(({ ...schema_utils_1.emptySchema, model: new schema_definition_1.SchemaBuilder()
37
+ .entity('Post', entity => entity.manyHasOne('author', relation => relation.target('Author').onDelete(schema_1.Model.OnDelete.setNull)))
38
+ .entity('Author', entity => entity)
39
+ .buildSchema() })),
40
+ project: {
41
+ slug: 'test',
42
+ stages: [
43
+ {
44
+ slug: 'prod',
45
+ name: 'prod',
46
+ },
47
+ ],
48
+ },
49
+ });
50
+ vitest_1.assert.equal(builder.getSql(), `ALTER TABLE "stage_live"."post" DROP CONSTRAINT "fk_post_author_id_author_id";
51
+ ALTER TABLE "stage_live"."post"
52
+ ADD FOREIGN KEY ("author_id")
53
+ REFERENCES "stage_live"."author" ("id") ON DELETE SET NULL DEFERRABLE INITIALLY IMMEDIATE
54
+ ;
55
+ `);
56
+ });
57
+ (0, vitest_1.test)('table-on-delete test valid', async () => {
58
+ const builder = (0, database_migrations_1.createMigrationBuilder)();
59
+ const connection = (0, database_tester_1.createConnectionMock)([{
60
+ sql: 'select schema from stage',
61
+ response: { rows: [{ schema: 'stage_live' }] },
62
+ }]);
63
+ await (0, _2023_09_11_174000_fix_on_delete_1.default)(builder, {
64
+ connection: connection,
65
+ databaseMetadataResolver: () => Promise.resolve((0, database_1.createDatabaseMetadata)({
66
+ indexes: [],
67
+ uniqueConstraints: [],
68
+ foreignKeys: [{
69
+ constraintName: 'fk_post_author_id_author_id',
70
+ fromColumn: 'author_id',
71
+ fromTable: 'post',
72
+ toColumn: 'id',
73
+ toTable: 'author',
74
+ deleteAction: database_1.ForeignKeyDeleteAction.setnull,
75
+ deferred: false,
76
+ deferrable: false,
77
+ }],
78
+ })),
79
+ schemaResolver: () => Promise.resolve(({
80
+ ...schema_utils_1.emptySchema, model: new schema_definition_1.SchemaBuilder()
81
+ .entity('Post', entity => entity.manyHasOne('author', relation => relation.target('Author').onDelete(schema_1.Model.OnDelete.setNull)))
82
+ .entity('Author', entity => entity)
83
+ .buildSchema(),
84
+ })),
85
+ project: {
86
+ slug: 'test',
87
+ stages: [
88
+ {
89
+ slug: 'prod',
90
+ name: 'prod',
91
+ },
92
+ ],
93
+ },
94
+ });
95
+ vitest_1.assert.equal(builder.getSql(), `\n`);
96
+ });
97
+ //# sourceMappingURL=2023-09-11-174000-fix-on-delete.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-09-11-174000-fix-on-delete.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,8 @@ const _2023_10_19_173000_fix_unique_1 = __importDefault(require("../../../src/mi
13
13
  const database_migrations_1 = require("@contember/database-migrations");
14
14
  const vitest_1 = require("vitest");
15
15
  const schema_definition_1 = require("@contember/schema-definition");
16
- const schema_utils_1 = require("@contember/schema-utils");
17
16
  const database_tester_1 = require("@contember/database-tester");
17
+ const database_1 = require("@contember/database");
18
18
  var UniqueModel;
19
19
  (function (UniqueModel) {
20
20
  let Foo = class Foo {
@@ -44,17 +44,18 @@ var UniqueModel;
44
44
  }]);
45
45
  await (0, _2023_10_19_173000_fix_unique_1.default)(builder, {
46
46
  connection: connection,
47
- databaseMetadataResolver: () => Promise.resolve({
48
- ...schema_utils_1.dummySchemaDatabaseMetadata,
49
- getAllUniqueConstraints: () => [
50
- { constraintName: 'valid1', tableName: 'foo', columnNames: ['col_a', 'col_b'] },
51
- { constraintName: 'valid2', tableName: 'foo', columnNames: ['col_b', 'many_has_one_bar_id'] },
52
- { constraintName: 'valid3', tableName: 'foo', columnNames: ['single_col_unique'] },
53
- { constraintName: 'valid4', tableName: 'foo', columnNames: ['has_one_bar_id'] },
54
- { constraintName: 'invalid1', tableName: 'foo', columnNames: ['col_a', 'col_c'] },
55
- { constraintName: 'invalid2', tableName: 'foo', columnNames: ['col_c', 'many_has_one_bar_id'] },
47
+ databaseMetadataResolver: () => Promise.resolve((0, database_1.createDatabaseMetadata)({
48
+ foreignKeys: [],
49
+ indexes: [],
50
+ uniqueConstraints: [
51
+ { constraintName: 'valid1', tableName: 'foo', columnNames: ['col_a', 'col_b'], deferrable: false, deferred: false },
52
+ { constraintName: 'valid2', tableName: 'foo', columnNames: ['col_b', 'many_has_one_bar_id'], deferrable: false, deferred: false },
53
+ { constraintName: 'valid3', tableName: 'foo', columnNames: ['single_col_unique'], deferrable: false, deferred: false },
54
+ { constraintName: 'valid4', tableName: 'foo', columnNames: ['has_one_bar_id'], deferrable: false, deferred: false },
55
+ { constraintName: 'invalid1', tableName: 'foo', columnNames: ['col_a', 'col_c'], deferrable: false, deferred: false },
56
+ { constraintName: 'invalid2', tableName: 'foo', columnNames: ['col_c', 'many_has_one_bar_id'], deferrable: false, deferred: false },
56
57
  ],
57
- }),
58
+ })),
58
59
  schemaResolver: () => Promise.resolve((0, schema_definition_1.createSchema)(UniqueModel)),
59
60
  project: {
60
61
  slug: 'test',
@@ -1 +1 @@
1
- {"version":3,"file":"2023-10-19-173000-fix-unique.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yHAA4E;AAC5E,wEAAuE;AACvE,mCAAqC;AACrC,oEAA8D;AAC9D,0DAAqE;AACrE,gEAAiE;AAEjE,IAAU,WAAW,CAiBpB;AAjBD,WAAU,WAAW;IAIpB,IAAa,GAAG,GAAhB,MAAa,GAAG;QAAhB;YACC,cAAS,GAAG,qBAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC5B,kBAAa,GAAG,qBAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YACjC,oBAAe,GAAG,qBAAC,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAA;YAE3C,SAAI,GAAG,qBAAC,CAAC,YAAY,EAAE,CAAA;YACvB,SAAI,GAAG,qBAAC,CAAC,YAAY,EAAE,CAAA;YACvB,SAAI,GAAG,qBAAC,CAAC,YAAY,EAAE,CAAA;QACxB,CAAC;KAAA,CAAA;IARY,GAAG;QAFf,qBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,qBAAC,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC;OACrB,GAAG,CAQf;IARY,eAAG,MAQf,CAAA;IAED,MAAa,GAAG;KAEf;IAFY,eAAG,MAEf,CAAA;AACF,CAAC,EAjBS,WAAW,KAAX,WAAW,QAiBpB;AAED,IAAA,aAAI,EAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;IACxC,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,CAAC;YACxC,GAAG,EAAE,0BAA0B;YAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;SAC9C,CAAC,CAAC,CAAA;IACH,MAAM,IAAA,uCAAS,EAAC,OAAO,EAAE;QACxB,UAAU,EAAE,UAAU;QACtB,wBAAwB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/C,GAAG,0CAA2B;YAC9B,uBAAuB,EAAE,GAAG,EAAE,CAAC;gBAC9B,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;gBAC/E,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE;gBAC7F,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE;gBAClF,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,gBAAgB,CAAC,EAAE;gBAE/E,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;gBACjF,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE;aAE/F;SACD,CAAC;QACF,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,gCAAY,EAAC,WAAW,CAAC,CAAC;QAChE,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACZ;aACD;SACD;KACD,CAAC,CAAA;IACF,eAAM,CAAC,KAAK,CACX,OAAO,CAAC,MAAM,EAAE,EAChB;;CAED,CACC,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"2023-10-19-173000-fix-unique.test.js","sourceRoot":"","sources":["../../../../tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts"],"names":[],"mappings":"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"}