@contember/engine-system-api 1.3.2 → 1.3.4

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 (31) hide show
  1. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.d.ts +4 -0
  2. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -0
  3. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js +70 -0
  4. package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -0
  5. package/dist/src/migrations/2023-10-19-173000-fix-unique.d.ts +4 -0
  6. package/dist/src/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -0
  7. package/dist/src/migrations/2023-10-19-173000-fix-unique.js +45 -0
  8. package/dist/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -0
  9. package/dist/src/migrations/runner.d.ts.map +1 -1
  10. package/dist/src/migrations/runner.js +4 -0
  11. package/dist/src/migrations/runner.js.map +1 -1
  12. package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts +1 -0
  13. package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts.map +1 -1
  14. package/dist/src/model/metadata/ResolvedDatabaseMetadata.js +9 -2
  15. package/dist/src/model/metadata/ResolvedDatabaseMetadata.js.map +1 -1
  16. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts.map +1 -1
  17. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js +14 -8
  18. package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js.map +1 -1
  19. package/dist/src/tsconfig.tsbuildinfo +1 -1
  20. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.d.ts +2 -0
  21. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.d.ts.map +1 -0
  22. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.js +73 -0
  23. package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.js.map +1 -0
  24. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +13 -13
  26. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +77 -0
  27. package/src/migrations/2023-10-19-173000-fix-unique.ts +49 -0
  28. package/src/migrations/runner.ts +4 -0
  29. package/src/model/metadata/ResolvedDatabaseMetadata.ts +10 -2
  30. package/src/model/metadata/SchemaDatabaseMetadataResolver.ts +5 -1
  31. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +66 -0
@@ -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=2023-09-11-174000-fix-on-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-09-11-174000-fix-on-delete.d.ts","sourceRoot":"","sources":["../../../src/migrations/2023-09-11-174000-fix-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,iBAsEjG"}
@@ -0,0 +1,70 @@
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
+ var _a;
8
+ var _b;
9
+ const schema = await args.schemaResolver(args.connection);
10
+ const stages = (await args.connection.query('SELECT schema FROM stage')).rows;
11
+ const metadataByStage = {};
12
+ for (const entity of Object.values(schema.model.entities)) {
13
+ for (const field of Object.values(entity.fields)) {
14
+ const result = (0, schema_utils_1.acceptFieldVisitor)(schema.model, entity, field, {
15
+ visitManyHasOne: ({ entity, relation, targetEntity }) => {
16
+ return { relation, entity, targetEntity };
17
+ },
18
+ visitOneHasOneOwning: ({ entity, relation, targetEntity }) => {
19
+ return { relation, entity, targetEntity };
20
+ },
21
+ visitOneHasOneInverse: () => null,
22
+ visitManyHasManyInverse: () => null,
23
+ visitManyHasManyOwning: () => null,
24
+ visitOneHasMany: () => null,
25
+ visitColumn: () => null,
26
+ });
27
+ if (!result) {
28
+ continue;
29
+ }
30
+ const { targetEntity, relation } = result;
31
+ if (entity.view || targetEntity.view) {
32
+ continue;
33
+ }
34
+ for (const stage of stages) {
35
+ const databaseMetadata = (_a = metadataByStage[_b = stage.schema]) !== null && _a !== void 0 ? _a : (metadataByStage[_b] = await args.databaseMetadataResolver(args.connection, stage.schema));
36
+ const fkNames = databaseMetadata.getForeignKeyConstraintNames({
37
+ fromTable: entity.tableName,
38
+ fromColumn: relation.joiningColumn.columnName,
39
+ toTable: targetEntity.tableName,
40
+ toColumn: targetEntity.primaryColumn,
41
+ });
42
+ if (fkNames.every(it => {
43
+ const constraint = databaseMetadata.getForeignKeyConstraint(entity.tableName, it);
44
+ const dbConstraintFlag = {
45
+ [schema_1.Model.OnDelete.setNull]: schema_utils_1.ForeignKeyDeleteAction.setnull,
46
+ [schema_1.Model.OnDelete.cascade]: schema_utils_1.ForeignKeyDeleteAction.cascade,
47
+ [schema_1.Model.OnDelete.restrict]: schema_utils_1.ForeignKeyDeleteAction.restrict,
48
+ }[relation.joiningColumn.onDelete];
49
+ return constraint && constraint.deleteAction === dbConstraintFlag;
50
+ })) {
51
+ continue;
52
+ }
53
+ for (const name of fkNames) {
54
+ builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, database_1.wrapIdentifier)(name)}`);
55
+ }
56
+ const onDelete = {
57
+ [schema_1.Model.OnDelete.setNull]: 'SET NULL',
58
+ [schema_1.Model.OnDelete.cascade]: 'CASCADE',
59
+ [schema_1.Model.OnDelete.restrict]: 'RESTRICT',
60
+ }[relation.joiningColumn.onDelete];
61
+ builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(entity.tableName)}
62
+ ADD FOREIGN KEY (${(0, database_1.wrapIdentifier)(relation.joiningColumn.columnName)})
63
+ REFERENCES ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(targetEntity.tableName)} (${(0, database_1.wrapIdentifier)(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE
64
+ `);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ exports.default = default_1;
70
+ //# sourceMappingURL=2023-09-11-174000-fix-on-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-09-11-174000-fix-on-delete.js","sourceRoot":"","sources":["../../../src/migrations/2023-09-11-174000-fix-on-delete.ts"],"names":[],"mappings":"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"}
@@ -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=2023-10-19-173000-fix-unique.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-10-19-173000-fix-unique.d.ts","sourceRoot":"","sources":["../../../src/migrations/2023-10-19-173000-fix-unique.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,iBAkCjG"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const database_1 = require("@contember/database");
4
+ const schema_migrations_1 = require("@contember/schema-migrations");
5
+ async function default_1(builder, args) {
6
+ var _a;
7
+ var _b;
8
+ const schema = await args.schemaResolver(args.connection);
9
+ const stages = (await args.connection.query('SELECT schema FROM stage')).rows;
10
+ const metadataByStage = {};
11
+ for (const entity of Object.values(schema.model.entities)) {
12
+ if (entity.view) {
13
+ continue;
14
+ }
15
+ const expectedUnique = [];
16
+ for (const uniq of entity.unique) {
17
+ const columns = (0, schema_migrations_1.getUniqueConstraintColumns)({
18
+ entity,
19
+ fields: uniq.fields,
20
+ model: schema.model,
21
+ });
22
+ expectedUnique.push(columns);
23
+ }
24
+ for (const stage of stages) {
25
+ const databaseMetadata = (_a = metadataByStage[_b = stage.schema]) !== null && _a !== void 0 ? _a : (metadataByStage[_b] = await args.databaseMetadataResolver(args.connection, stage.schema));
26
+ const existingUniqueConstraints = databaseMetadata.getAllUniqueConstraints().filter(it => it.tableName === entity.tableName);
27
+ for (const constraint of existingUniqueConstraints) {
28
+ if (constraint.columnNames.length === 1 || expectedUnique.some(it => stringArrayEquals(it, constraint.columnNames))) {
29
+ continue;
30
+ }
31
+ builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, database_1.wrapIdentifier)(constraint.constraintName)}`);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ exports.default = default_1;
37
+ const stringArrayEquals = (colA, colB) => {
38
+ if (colA.length !== colB.length) {
39
+ return false;
40
+ }
41
+ const a = [...colA].sort();
42
+ const b = [...colB].sort();
43
+ return a.every((it, index) => it === b[index]);
44
+ };
45
+ //# sourceMappingURL=2023-10-19-173000-fix-unique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2023-10-19-173000-fix-unique.js","sourceRoot":"","sources":["../../../src/migrations/2023-10-19-173000-fix-unique.ts"],"names":[],"mappings":";;AACA,kDAAoD;AAGpD,oEAAyE;AAE1D,KAAK,oBAAW,OAAyB,EAAE,IAAwC;;;IACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAmB,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,MAAM,eAAe,GAA2C,EAAE,CAAA;IAElE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;QAC1D,IAAI,MAAM,CAAC,IAAI,EAAE;YAChB,SAAQ;SACR;QAED,MAAM,cAAc,GAAe,EAAE,CAAA;QAErC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;YACjC,MAAM,OAAO,GAAG,IAAA,8CAA0B,EAAC;gBAC1C,MAAM;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;aACnB,CAAC,CAAA;YACF,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC5B;QAGD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,MAAM,gBAAgB,SAAG,eAAe,MAAC,KAAK,CAAC,MAAM,qCAA5B,eAAe,OAAmB,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA,CAAA;YAE7H,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAA;YAC5H,KAAK,MAAM,UAAU,IAAI,yBAAyB,EAAE;gBACnD,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE;oBACpH,SAAQ;iBACR;gBACD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAA,yBAAc,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAA,yBAAc,EAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,IAAA,yBAAc,EAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;aAC3J;SACD;KACD;AACF,CAAC;AAlCD,4BAkCC;AACD,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,IAAc,EAAE,EAAE;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;QAChC,OAAO,KAAK,CAAA;KACZ;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA"}
@@ -1 +1 @@
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;AAG1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAA;AAwBjG,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;IAChC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,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,EACxD,wBAAwB,EAAE,8BAA8B;IAGpE,GAAG,CAAC,MAAM,EAAE,MAAM;CAmCxB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0C,MAAM,gCAAgC,CAAA;AAuBvG,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;AAG1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAA;AA0BjG,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;IAChC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,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,EACxD,wBAAwB,EAAE,8BAA8B;IAGpE,GAAG,CAAC,MAAM,EAAE,MAAM;CAmCxB"}
@@ -23,6 +23,8 @@ const _2022_02_08_132600_fn_search_path_1 = __importDefault(require("./2022-02-0
23
23
  const _2022_02_08_140500_drop_deadcode_1 = __importDefault(require("./2022-02-08-140500-drop-deadcode"));
24
24
  const _2022_02_08_144400_dynamic_stage_schema_1 = __importDefault(require("./2022-02-08-144400-dynamic-stage-schema"));
25
25
  const _2022_10_03_110000_table_on_delete_1 = __importDefault(require("./2022-10-03-110000-table-on-delete"));
26
+ const _2023_09_11_174000_fix_on_delete_1 = __importDefault(require("./2023-09-11-174000-fix-on-delete"));
27
+ const _2023_10_19_173000_fix_unique_1 = __importDefault(require("./2023-10-19-173000-fix-unique"));
26
28
  const snapshot_1 = __importDefault(require("./snapshot"));
27
29
  const database_1 = require("@contember/database");
28
30
  const database_migrations_2 = require("@contember/database-migrations");
@@ -46,6 +48,8 @@ const migrations = {
46
48
  '2022-02-08-140500-drop-deadcode': _2022_02_08_140500_drop_deadcode_1.default,
47
49
  '2022-02-08-144400-dynamic-stage-schema': _2022_02_08_144400_dynamic_stage_schema_1.default,
48
50
  '2022-10-03-110000-table-on-delete': _2022_10_03_110000_table_on_delete_1.default,
51
+ '2023-09-11-174000-fix-on-delete': _2023_09_11_174000_fix_on_delete_1.default,
52
+ '2023-10-19-173000-fix-unique': _2023_10_19_173000_fix_unique_1.default,
49
53
  };
50
54
  class SystemMigrationsRunner {
51
55
  constructor(databaseContextFactory, project, schema, schemaVersionBuilder, migrationGroups, databaseMetadataResolver) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class ResolvedDatabaseMetadata implements SchemaDatabaseMetadata
4
4
  private readonly uniqueConstraints;
5
5
  private readonly indexes;
6
6
  constructor(foreignKeys: ForeignKeyConstraintMetadata[], uniqueConstraints: UniqueConstraintMetadata[], indexes: IndexMetadata[]);
7
+ getAllUniqueConstraints(): UniqueConstraintMetadata[];
7
8
  getUniqueConstraint(tableName: string, constraintName: string): UniqueConstraintMetadata | null;
8
9
  getForeignKeyConstraint(tableName: string, constraintName: string): ForeignKeyConstraintMetadata | null;
9
10
  getForeignKeyConstraintNames({ fromTable, fromColumn, toTable, toColumn }: GetForeignKeyConstraintNameArgs): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvedDatabaseMetadata.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,yBAAyB,CAAA;AAOhC,qBAAa,wBAAyB,YAAW,sBAAsB;IAErE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,WAAW,EAAE,4BAA4B,EAAE,EAC3C,iBAAiB,EAAE,wBAAwB,EAAE,EAC7C,OAAO,EAAE,aAAa,EAAE;IAI1C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAI/F,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI;IAIvG,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAAG,MAAM,EAAE;IAWrH,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,2BAA2B,GAAG,MAAM,EAAE;IAM3F,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAKrE"}
1
+ {"version":3,"file":"ResolvedDatabaseMetadata.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,yBAAyB,CAAA;AAWhC,qBAAa,wBAAyB,YAAW,sBAAsB;IAErE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,WAAW,EAAE,4BAA4B,EAAE,EAC3C,iBAAiB,EAAE,wBAAwB,EAAE,EAC7C,OAAO,EAAE,aAAa,EAAE;IAI1C,uBAAuB,IAAI,wBAAwB,EAAE;IAIrD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAI/F,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI;IAIvG,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAAG,MAAM,EAAE;IAWrH,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,2BAA2B,GAAG,MAAM,EAAE;IAM3F,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAKrE"}
@@ -2,8 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResolvedDatabaseMetadata = void 0;
4
4
  const stringArrayEquals = (colA, colB) => {
5
- return colA.length === colB.length
6
- && colA.every((it, index) => it === colB[index]);
5
+ if (colA.length !== colB.length) {
6
+ return false;
7
+ }
8
+ const a = [...colA].sort();
9
+ const b = [...colB].sort();
10
+ return a.every((it, index) => it === b[index]);
7
11
  };
8
12
  class ResolvedDatabaseMetadata {
9
13
  constructor(foreignKeys, uniqueConstraints, indexes) {
@@ -11,6 +15,9 @@ class ResolvedDatabaseMetadata {
11
15
  this.uniqueConstraints = uniqueConstraints;
12
16
  this.indexes = indexes;
13
17
  }
18
+ getAllUniqueConstraints() {
19
+ return this.uniqueConstraints;
20
+ }
14
21
  getUniqueConstraint(tableName, constraintName) {
15
22
  var _a;
16
23
  return (_a = this.uniqueConstraints.find(it => it.tableName === tableName && it.constraintName === constraintName)) !== null && _a !== void 0 ? _a : null;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvedDatabaseMetadata.js","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":";;;AAUA,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,IAAc,EAAE,EAAE;IAC5D,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;WAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAa,wBAAwB;IACpC,YACkB,WAA2C,EAC3C,iBAA6C,EAC7C,OAAwB;QAFxB,gBAAW,GAAX,WAAW,CAAgC;QAC3C,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,YAAO,GAAP,OAAO,CAAiB;IAE1C,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,cAAsB;;QAC5D,OAAO,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IACrH,CAAC;IAED,uBAAuB,CAAC,SAAiB,EAAE,cAAsB;;QAChE,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IAC/G,CAAC;IAED,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAmC;QACzG,OAAO,IAAI,CAAC,WAAW;aACrB,MAAM,CAAC,EAAE,CAAC,EAAE,CACZ,EAAE,CAAC,SAAS,KAAK,SAAS;eACvB,EAAE,CAAC,OAAO,KAAK,OAAO;eACtB,EAAE,CAAC,UAAU,KAAK,UAAU;eAC5B,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAC3B;aACA,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAA+B;QAC/E,OAAO,IAAI,CAAC,iBAAiB;aAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAoB;QACzD,OAAO,IAAI,CAAC,OAAO;aACjB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC;CACD;AAtCD,4DAsCC"}
1
+ {"version":3,"file":"ResolvedDatabaseMetadata.js","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":";;;AAUA,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,IAAc,EAAE,EAAE;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;QAChC,OAAO,KAAK,CAAA;KACZ;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAa,wBAAwB;IACpC,YACkB,WAA2C,EAC3C,iBAA6C,EAC7C,OAAwB;QAFxB,gBAAW,GAAX,WAAW,CAAgC;QAC3C,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,YAAO,GAAP,OAAO,CAAiB;IAE1C,CAAC;IAED,uBAAuB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC9B,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,cAAsB;;QAC5D,OAAO,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IACrH,CAAC;IAED,uBAAuB,CAAC,SAAiB,EAAE,cAAsB;;QAChE,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IAC/G,CAAC;IAED,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAmC;QACzG,OAAO,IAAI,CAAC,WAAW;aACrB,MAAM,CAAC,EAAE,CAAC,EAAE,CACZ,EAAE,CAAC,SAAS,KAAK,SAAS;eACvB,EAAE,CAAC,OAAO,KAAK,OAAO;eACtB,EAAE,CAAC,UAAU,KAAK,UAAU;eAC5B,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAC3B;aACA,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAA+B;QAC/E,OAAO,IAAI,CAAC,iBAAiB;aAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAoB;QACzD,OAAO,IAAI,CAAC,OAAO;aACjB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC;CACD;AA1CD,4DA0CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaDatabaseMetadataResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,sBAAsB,EAEtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C,qBAAa,8BAA8B;IACpC,eAAe,CAAC,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAkCpF,gBAAgB;YA+BhB,YAAY;CAsB1B"}
1
+ {"version":3,"file":"SchemaDatabaseMetadataResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,sBAAsB,EAGtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C,qBAAa,8BAA8B;IACpC,eAAe,CAAC,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAmCpF,gBAAgB;YAgChB,YAAY;CAsB1B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SchemaDatabaseMetadataResolver = void 0;
4
+ const schema_utils_1 = require("@contember/schema-utils");
4
5
  const ResolvedDatabaseMetadata_1 = require("./ResolvedDatabaseMetadata");
5
6
  class SchemaDatabaseMetadataResolver {
6
7
  async resolveMetadata(db, contentSchema) {
@@ -8,13 +9,17 @@ class SchemaDatabaseMetadataResolver {
8
9
  const indexRows = await this.fetchIndexes(db.client, contentSchema);
9
10
  const fkConstraints = constraintRows
10
11
  .filter((it) => it.type === ConstraintTypes.foreignKey)
11
- .map((it) => ({
12
- constraintName: it.constraint_name,
13
- fromColumn: it.columns[0],
14
- toColumn: it.target_columns[0],
15
- fromTable: it.table_name,
16
- toTable: it.target_table,
17
- }));
12
+ .map((it) => {
13
+ var _a;
14
+ return ({
15
+ constraintName: it.constraint_name,
16
+ fromColumn: it.columns[0],
17
+ toColumn: it.target_columns[0],
18
+ fromTable: it.table_name,
19
+ toTable: it.target_table,
20
+ deleteAction: (_a = it.delete_action) !== null && _a !== void 0 ? _a : schema_utils_1.ForeignKeyDeleteAction.noaction,
21
+ });
22
+ });
18
23
  const uniqueConstraints = constraintRows
19
24
  .filter((it) => it.type === ConstraintTypes.unique)
20
25
  .map((it) => ({
@@ -41,7 +46,8 @@ class SchemaDatabaseMetadataResolver {
41
46
  JSONB_AGG(DISTINCT pg_attribute_target.attname)
42
47
  FILTER ( WHERE pg_attribute_target.attname IS NOT NULL) AS target_columns,
43
48
  BOOL_OR(condeferrable),
44
- BOOL_OR(condeferred)
49
+ BOOL_OR(condeferred),
50
+ MAX(confdeltype) AS delete_action
45
51
  FROM pg_constraint
46
52
  JOIN pg_class
47
53
  ON pg_constraint.conrelid = pg_class.oid
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaDatabaseMetadataResolver.js","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":";;;AAQA,yEAAqE;AAErE,MAAa,8BAA8B;IAC1C,KAAK,CAAC,eAAe,CAAC,EAAmB,EAAE,aAAqB;QAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAEnE,MAAM,aAAa,GAAG,cAAc;aAClC,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,CAAC;aACtF,GAAG,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,CAAC;YAC3C,cAAc,EAAE,EAAE,CAAC,eAAe;YAClC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACzB,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9B,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,OAAO,EAAE,EAAE,CAAC,YAAY;SACxB,CAAC,CAAC,CAAA;QACJ,MAAM,iBAAiB,GAAG,cAAc;aACtC,MAAM,CAAC,CAAC,EAAE,EAA8B,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC;aAC9E,GAAG,CAAC,CAAC,EAAE,EAA4B,EAAE,CAAC,CAAC;YACvC,cAAc,EAAE,EAAE,CAAC,eAAe;YAClC,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QACJ,MAAM,OAAO,GAAG,SAAS;aACvB,GAAG,CAAC,CAAC,EAAE,EAAiB,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QAEJ,OAAO,IAAI,mDAAwB,CAClC,aAAa,EACb,iBAAiB,EACjB,OAAO,CACP,CAAA;IACF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAgC,EAAE,MAAc;QAC9E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0B9C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAgC,EAAE,MAAc;QAC1E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAW;;;;;;;;;;;;;;;;;;GAkBxC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;CACD;AAxFD,wEAwFC;AAED,IAAK,eAGJ;AAHD,WAAK,eAAe;IACnB,mCAAgB,CAAA;IAChB,+BAAY,CAAA;AACb,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB"}
1
+ {"version":3,"file":"SchemaDatabaseMetadataResolver.js","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":";;;AAAA,0DAMgC;AAGhC,yEAAqE;AAErE,MAAa,8BAA8B;IAC1C,KAAK,CAAC,eAAe,CAAC,EAAmB,EAAE,aAAqB;QAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAEnE,MAAM,aAAa,GAAG,cAAc;aAClC,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,CAAC;aACtF,GAAG,CAAC,CAAC,EAAE,EAAgC,EAAE;;YAAC,OAAA,CAAC;gBAC3C,cAAc,EAAE,EAAE,CAAC,eAAe;gBAClC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzB,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC9B,SAAS,EAAE,EAAE,CAAC,UAAU;gBACxB,OAAO,EAAE,EAAE,CAAC,YAAY;gBACxB,YAAY,EAAE,MAAA,EAAE,CAAC,aAAa,mCAAI,qCAAsB,CAAC,QAAQ;aACjE,CAAC,CAAA;SAAA,CAAC,CAAA;QACJ,MAAM,iBAAiB,GAAG,cAAc;aACtC,MAAM,CAAC,CAAC,EAAE,EAA8B,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC;aAC9E,GAAG,CAAC,CAAC,EAAE,EAA4B,EAAE,CAAC,CAAC;YACvC,cAAc,EAAE,EAAE,CAAC,eAAe;YAClC,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QACJ,MAAM,OAAO,GAAG,SAAS;aACvB,GAAG,CAAC,CAAC,EAAE,EAAiB,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QAEJ,OAAO,IAAI,mDAAwB,CAClC,aAAa,EACb,iBAAiB,EACjB,OAAO,CACP,CAAA;IACF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAgC,EAAE,MAAc;QAC9E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2B9C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAgC,EAAE,MAAc;QAC1E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAW;;;;;;;;;;;;;;;;;;GAkBxC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;CACD;AA1FD,wEA0FC;AAED,IAAK,eAGJ;AAHD,WAAK,eAAe;IACnB,mCAAgB,CAAA;IAChB,+BAAY,CAAA;AACb,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB"}