@contember/engine-system-api 1.3.0 → 1.3.3
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.
- package/dist/src/migrations/2023-09-11-174000-fix-on-delete.d.ts +4 -0
- package/dist/src/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -0
- package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js +70 -0
- package/dist/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -0
- package/dist/src/migrations/runner.d.ts.map +1 -1
- package/dist/src/migrations/runner.js +2 -0
- package/dist/src/migrations/runner.js.map +1 -1
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts.map +1 -1
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js +14 -8
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/src/migrations/2023-09-11-174000-fix-on-delete.ts +77 -0
- package/src/migrations/runner.ts +2 -0
- package/src/model/metadata/SchemaDatabaseMetadataResolver.ts +5 -1
|
@@ -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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"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0C,MAAM,gCAAgC,CAAA;AAsBvG,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;AAyBjG,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,7 @@ 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"));
|
|
26
27
|
const snapshot_1 = __importDefault(require("./snapshot"));
|
|
27
28
|
const database_1 = require("@contember/database");
|
|
28
29
|
const database_migrations_2 = require("@contember/database-migrations");
|
|
@@ -46,6 +47,7 @@ const migrations = {
|
|
|
46
47
|
'2022-02-08-140500-drop-deadcode': _2022_02_08_140500_drop_deadcode_1.default,
|
|
47
48
|
'2022-02-08-144400-dynamic-stage-schema': _2022_02_08_144400_dynamic_stage_schema_1.default,
|
|
48
49
|
'2022-10-03-110000-table-on-delete': _2022_10_03_110000_table_on_delete_1.default,
|
|
50
|
+
'2023-09-11-174000-fix-on-delete': _2023_09_11_174000_fix_on_delete_1.default,
|
|
49
51
|
};
|
|
50
52
|
class SystemMigrationsRunner {
|
|
51
53
|
constructor(databaseContextFactory, project, schema, schemaVersionBuilder, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAuG;AACvG,uFAA0D;AAC1D,2HAA4F;AAC5F,uGAAwE;AACxE,uGAAyE;AACzE,mIAAmG;AACnG,mIAAmG;AACnG,+HAAgG;AAChG,mHAAqF;AACrF,+GAAiF;AACjF,mHAAoF;AACpF,yGAA2E;AAC3E,+GAAgF;AAChF,iIAAiG;AACjG,iGAAmE;AACnE,2GAA4E;AAC5E,yGAA2E;AAC3E,uHAAwF;AACxF,6GAA8E;AAC9E,0DAAiC;AAEjC,kDAAmG;AAInG,wEAAwE;AACxE,wEAA0E;AAG1E,MAAM,UAAU,GAAG;IAClB,wBAAwB,EAAE,iCAAmB;IAC7C,0CAA0C,EAAE,mDAAmC;IAC/E,gCAAgC,EAAE,yCAAyB;IAC3D,gCAAgC,EAAE,yCAA0B;IAC5D,8CAA8C,EAAE,uDAAsC;IACtF,8CAA8C,EAAE,uDAAsC;IACtF,4CAA4C,EAAE,qDAAqC;IACnF,sCAAsC,EAAE,+CAAgC;IACxE,oCAAoC,EAAE,6CAA8B;IACpE,sCAAsC,EAAE,+CAA+B;IACvE,iCAAiC,EAAE,0CAA2B;IAC9D,oCAAoC,EAAE,6CAA6B;IACnE,6CAA6C,EAAE,sDAAqC;IACpF,6BAA6B,EAAE,sCAAuB;IACtD,kCAAkC,EAAE,2CAA2B;IAC/D,iCAAiC,EAAE,0CAA2B;IAC9D,wCAAwC,EAAE,iDAAiC;IAC3E,mCAAmC,EAAE,4CAA4B;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaDatabaseMetadataResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,sBAAsB,
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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":";;;
|
|
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"}
|