@contember/engine-system-api 2.1.0-alpha.1 → 2.1.0-alpha.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/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs +60 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js +61 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -0
- package/dist/development/src/migrations/runner.cjs +3 -1
- package/dist/development/src/migrations/runner.cjs.map +1 -1
- package/dist/development/src/migrations/runner.js +3 -1
- package/dist/development/src/migrations/runner.js.map +1 -1
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs +1 -5
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js +1 -5
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs +60 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js +61 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -0
- package/dist/production/src/migrations/runner.cjs +3 -1
- package/dist/production/src/migrations/runner.cjs.map +1 -1
- package/dist/production/src/migrations/runner.js +3 -1
- package/dist/production/src/migrations/runner.js.map +1 -1
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs +1 -5
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js +1 -5
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
- package/dist/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.d.ts.map +1 -0
- package/dist/tests/src/uuid.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts +4 -0
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts.map +1 -0
- package/dist/types/migrations/runner.d.ts.map +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
- package/dist/types/model/events/EventResponseHelper.d.ts.map +1 -1
- package/dist/types/model/events/identityUtils.d.ts.map +1 -1
- package/dist/types/model/helpers/modelHelpers.d.ts.map +1 -1
- package/dist/types/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
- package/dist/types/model/queries/events/LatestTransactionIdByStageQuery.d.ts +2 -2
- package/dist/types/model/queries/events/LatestTransactionIdByStageQuery.d.ts.map +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
- package/dist/types/resolvers/types/OldValuesHelpers.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils/batchQuery.d.ts.map +1 -1
- package/dist/types/utils/tuple.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/migrations/2025-03-14-110000-fix-missing-index.ts +68 -0
- package/src/migrations/runner.ts +2 -0
- package/src/model/queries/events/LatestTransactionIdByStageQuery.ts +3 -7
- package/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.ts +62 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const Database = require("@contember/database");
|
|
3
|
+
const schemaUtils = require("@contember/schema-utils");
|
|
4
|
+
async function _20250314110000fixmissingindex(builder, args) {
|
|
5
|
+
var _a;
|
|
6
|
+
const schema = (await args.schemaResolver(args.connection)).schema;
|
|
7
|
+
const stages = (await args.connection.query("SELECT schema FROM stage")).rows;
|
|
8
|
+
const metadataByStage = {};
|
|
9
|
+
for (const entity of Object.values(schema.model.entities)) {
|
|
10
|
+
if (entity.indexes.length === 0) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
for (const stage of stages) {
|
|
14
|
+
const databaseMetadata = metadataByStage[_a = stage.schema] ?? (metadataByStage[_a] = await args.databaseMetadataResolver(args.connection, stage.schema));
|
|
15
|
+
for (const index of entity.indexes) {
|
|
16
|
+
const columns = getIndexColumns({
|
|
17
|
+
entity,
|
|
18
|
+
fields: index.fields,
|
|
19
|
+
model: schema.model
|
|
20
|
+
});
|
|
21
|
+
const indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames();
|
|
22
|
+
if (indexNames.length > 0) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const tableNameId = Database.wrapIdentifier(entity.tableName);
|
|
26
|
+
const columnNameIds = columns.map(Database.wrapIdentifier);
|
|
27
|
+
builder.sql(`CREATE INDEX ON ${Database.wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(", ")})`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const getIndexColumns = ({ entity, fields, model }) => {
|
|
33
|
+
return fields.map((fieldName) => {
|
|
34
|
+
return schemaUtils.acceptFieldVisitor(model, entity, fieldName, {
|
|
35
|
+
visitColumn: ({ column }) => {
|
|
36
|
+
return column.columnName;
|
|
37
|
+
},
|
|
38
|
+
visitManyHasOne: ({ relation }) => {
|
|
39
|
+
return relation.joiningColumn.columnName;
|
|
40
|
+
},
|
|
41
|
+
visitOneHasOneOwning: ({ relation }) => {
|
|
42
|
+
return relation.joiningColumn.columnName;
|
|
43
|
+
},
|
|
44
|
+
visitOneHasMany: () => {
|
|
45
|
+
throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
|
|
46
|
+
},
|
|
47
|
+
visitOneHasOneInverse: () => {
|
|
48
|
+
throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
|
|
49
|
+
},
|
|
50
|
+
visitManyHasManyOwning: () => {
|
|
51
|
+
throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
|
|
52
|
+
},
|
|
53
|
+
visitManyHasManyInverse: () => {
|
|
54
|
+
throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
module.exports = _20250314110000fixmissingindex;
|
|
60
|
+
//# sourceMappingURL=2025-03-14-110000-fix-missing-index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["wrapIdentifier","acceptFieldVisitor"],"mappings":";;;AAOA,eAAA,+BAA+B,SAA2B,MAA0C;AAPpG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAAwB,0BAA0B,GAAG;AAC3F,QAAM,kBAAoD,CAAC;AAE3D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AACtD,QAAA,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IAAA;AAGD,eAAW,SAAS,QAAQ;AACrB,YAAA,mBAAmB,gBAAgB,KAAA,MAAM,MAAtB,MAAA,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAEjH,iBAAA,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAC/G,YAAA,WAAW,SAAS,GAAG;AAC1B;AAAA,QAAA;AAGK,cAAA,cAAcA,SAAAA,eAAe,OAAO,SAAS;AAC7C,cAAA,gBAAgB,QAAQ,IAAIA,uBAAc;AAEhD,gBAAQ,IAAI,mBAAmBA,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAAA;AAAA,IAE3G;AAAA,EACD;AAEF;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AACzH,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAAC,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAC7F,CACA;AAAA,EAAA,CACD;AACF;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { wrapIdentifier } from "@contember/database";
|
|
2
|
+
import { acceptFieldVisitor } from "@contember/schema-utils";
|
|
3
|
+
async function _20250314110000fixmissingindex(builder, args) {
|
|
4
|
+
var _a;
|
|
5
|
+
const schema = (await args.schemaResolver(args.connection)).schema;
|
|
6
|
+
const stages = (await args.connection.query("SELECT schema FROM stage")).rows;
|
|
7
|
+
const metadataByStage = {};
|
|
8
|
+
for (const entity of Object.values(schema.model.entities)) {
|
|
9
|
+
if (entity.indexes.length === 0) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
for (const stage of stages) {
|
|
13
|
+
const databaseMetadata = metadataByStage[_a = stage.schema] ?? (metadataByStage[_a] = await args.databaseMetadataResolver(args.connection, stage.schema));
|
|
14
|
+
for (const index of entity.indexes) {
|
|
15
|
+
const columns = getIndexColumns({
|
|
16
|
+
entity,
|
|
17
|
+
fields: index.fields,
|
|
18
|
+
model: schema.model
|
|
19
|
+
});
|
|
20
|
+
const indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames();
|
|
21
|
+
if (indexNames.length > 0) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const tableNameId = wrapIdentifier(entity.tableName);
|
|
25
|
+
const columnNameIds = columns.map(wrapIdentifier);
|
|
26
|
+
builder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(", ")})`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const getIndexColumns = ({ entity, fields, model }) => {
|
|
32
|
+
return fields.map((fieldName) => {
|
|
33
|
+
return acceptFieldVisitor(model, entity, fieldName, {
|
|
34
|
+
visitColumn: ({ column }) => {
|
|
35
|
+
return column.columnName;
|
|
36
|
+
},
|
|
37
|
+
visitManyHasOne: ({ relation }) => {
|
|
38
|
+
return relation.joiningColumn.columnName;
|
|
39
|
+
},
|
|
40
|
+
visitOneHasOneOwning: ({ relation }) => {
|
|
41
|
+
return relation.joiningColumn.columnName;
|
|
42
|
+
},
|
|
43
|
+
visitOneHasMany: () => {
|
|
44
|
+
throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
|
|
45
|
+
},
|
|
46
|
+
visitOneHasOneInverse: () => {
|
|
47
|
+
throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
|
|
48
|
+
},
|
|
49
|
+
visitManyHasManyOwning: () => {
|
|
50
|
+
throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
|
|
51
|
+
},
|
|
52
|
+
visitManyHasManyInverse: () => {
|
|
53
|
+
throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
export {
|
|
59
|
+
_20250314110000fixmissingindex as default
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=2025-03-14-110000-fix-missing-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.js","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";;AAOA,eAAA,+BAA+B,SAA2B,MAA0C;AAPpG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAAwB,0BAA0B,GAAG;AAC3F,QAAM,kBAAoD,CAAC;AAE3D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AACtD,QAAA,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IAAA;AAGD,eAAW,SAAS,QAAQ;AACrB,YAAA,mBAAmB,gBAAgB,KAAA,MAAM,MAAtB,MAAA,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAEjH,iBAAA,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAC/G,YAAA,WAAW,SAAS,GAAG;AAC1B;AAAA,QAAA;AAGK,cAAA,cAAc,eAAe,OAAO,SAAS;AAC7C,cAAA,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,gBAAQ,IAAI,mBAAmB,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAAA;AAAA,IAE3G;AAAA,EACD;AAEF;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AACzH,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAA,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAC7F,CACA;AAAA,EAAA,CACD;AACF;"}
|
|
@@ -26,6 +26,7 @@ const _20240628150000MigrationsDropSequence = require("./2024-06-28-150000-migra
|
|
|
26
26
|
const _20240628153000Schema = require("./2024-06-28-153000-schema.cjs");
|
|
27
27
|
const _20240628153001SchemaInit = require("./2024-06-28-153001-schema-init.cjs");
|
|
28
28
|
const _20240729150000EventDataIndex = require("./2024-07-29-150000-event-data-index.cjs");
|
|
29
|
+
const _20250314110000FixMissingIndex = require("./2025-03-14-110000-fix-missing-index.cjs");
|
|
29
30
|
const snapshot = require("./snapshot.cjs");
|
|
30
31
|
const Database = require("@contember/database");
|
|
31
32
|
const migrations = {
|
|
@@ -53,7 +54,8 @@ const migrations = {
|
|
|
53
54
|
"2024-06-28-150000-migrations-drop-sequence": _20240628150000MigrationsDropSequence,
|
|
54
55
|
"2024-06-28-153000-schema": _20240628153000Schema,
|
|
55
56
|
"2024-06-28-153001-schema-init": _20240628153001SchemaInit,
|
|
56
|
-
"2024-07-29-150000-event-data-index": _20240729150000EventDataIndex
|
|
57
|
+
"2024-07-29-150000-event-data-index": _20240729150000EventDataIndex,
|
|
58
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000FixMissingIndex
|
|
57
59
|
};
|
|
58
60
|
class SystemMigrationsRunner {
|
|
59
61
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","_20250314110000fixmissingindex","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,aAAa;AAAA,EAClB,0BAA0BA;AAAAA,EAC1B,4CAA4CC;AAAAA,EAC5C,kCAAkCC;AAAAA,EAClC,kCAAkCC;AAAAA,EAClC,gDAAgDC;AAAAA,EAChD,gDAAgDC;AAAAA,EAChD,8CAA8CC;AAAAA,EAC9C,wCAAwCC;AAAAA,EACxC,sCAAsCC;AAAAA,EACtC,wCAAwCC;AAAAA,EACxC,mCAAmCC;AAAAA,EACnC,sCAAsCC;AAAAA,EACtC,+CAA+CC;AAAAA,EAC/C,+BAA+BC;AAAAA,EAC/B,oCAAoCC;AAAAA,EACpC,mCAAmCC;AAAAA,EACnC,0CAA0CC;AAAAA,EAC1C,qCAAqCC;AAAAA,EACrC,mCAAmCC;AAAAA,EACnC,gCAAgCC;AAAAA,EAChC,8CAA8CC;AAAAA,EAC9C,8CAA8CC;AAAAA,EAC9C,4BAA4BC;AAAAA,EAC5B,iCAAiCC;AAAAA,EACjC,sCAAsCC;AAAAA,EACtC,uCAAuCC;AACxC;AAGO,MAAM,uBAAuB;AAAA,EACnC,YACkB,wBACA,SACA,gBACA,iBACA,0BAChB;AALgB,SAAA,yBAAA;AACA,SAAA,UAAA;AACA,SAAA,iBAAA;AACA,SAAA,kBAAA;AACA,SAAA,2BAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,IAAI,QAAgB;AACzB,UAAMC,SAAAA,0BAA0B,KAAK,QAAQ,IAAI,aAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AAChI,UAAA,mBAAmBC,SAAAA,WAAW,aAAa,KAAK,QAAQ,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AACpF,UAAA,iBAAiB,MAAM,OAAM,eAAc;AAC1C,YAAA,iBAAiB,OAAOC,gBAA0C;AACvE,cAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,eAAO,MAAM,KAAK,eAAe,0BAA0B,mBAAmB;AAAA,MAC/E;AACA,YAAM,oBAAoB,IAAIC,mBAAA;AAAA,QAC7B,IAAIC,mBAA0B,0BAAA,UAAU,UAAU;AAAA,QAClD,OAAO;AAAA,UAAY,OAAO,QAAQ,KAAK,eAAe,EAAE;AAAA,YACvD,CAAC,CAAC,OAAO,EAAE,MAAM;AAAA,cAChB;AAAA,cACA,IAAIA,mBAAA;AAAA,gBACH,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,QAAQ,aAAa,GAAG;AAAA,gBAC9B;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QAAC;AAAA,MAEH;AACA,YAAM,mBAAmB,IAAIC,oCAAmB,YAAY,KAAK,QAAQ,cAAc,iBAAiB;AACxG,YAAM,iBAAiB,QAAQ,CAAA,YAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QAC/D,SAAS,KAAK;AAAA,QACd;AAAA,QACA,0BAA0B,CAACH,aAAuC,WAAmB;AACpF,gBAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,iBAAO,KAAK,yBAAyB,gBAAgB,oBAAoB,QAAQ,MAAM;AAAA,QAAA;AAAA,MACxF,CAEA;AAAA,IAAA,CACD;AACD,UAAM,iBAAiB,IAAI;AAAA,EAAA;AAE7B;;"}
|
|
@@ -24,6 +24,7 @@ import _20240628150000migrationsdropsequence from "./2024-06-28-150000-migration
|
|
|
24
24
|
import _20240628153000schema from "./2024-06-28-153000-schema.js";
|
|
25
25
|
import _20240628153001schemainit from "./2024-06-28-153001-schema-init.js";
|
|
26
26
|
import _20240729150000eventdataindex from "./2024-07-29-150000-event-data-index.js";
|
|
27
|
+
import _20250314110000fixmissingindex from "./2025-03-14-110000-fix-missing-index.js";
|
|
27
28
|
import snapshot from "./snapshot.js";
|
|
28
29
|
import { createDatabaseIfNotExists, Connection } from "@contember/database";
|
|
29
30
|
const migrations = {
|
|
@@ -51,7 +52,8 @@ const migrations = {
|
|
|
51
52
|
"2024-06-28-150000-migrations-drop-sequence": _20240628150000migrationsdropsequence,
|
|
52
53
|
"2024-06-28-153000-schema": _20240628153000schema,
|
|
53
54
|
"2024-06-28-153001-schema-init": _20240628153001schemainit,
|
|
54
|
-
"2024-07-29-150000-event-data-index": _20240729150000eventdataindex
|
|
55
|
+
"2024-07-29-150000-event-data-index": _20240729150000eventdataindex,
|
|
56
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000fixmissingindex
|
|
55
57
|
};
|
|
56
58
|
class SystemMigrationsRunner {
|
|
57
59
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.js","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,aAAa;AAAA,EAClB,0BAA0B;AAAA,EAC1B,4CAA4C;AAAA,EAC5C,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,gDAAgD;AAAA,EAChD,gDAAgD;AAAA,EAChD,8CAA8C;AAAA,EAC9C,wCAAwC;AAAA,EACxC,sCAAsC;AAAA,EACtC,wCAAwC;AAAA,EACxC,mCAAmC;AAAA,EACnC,sCAAsC;AAAA,EACtC,+CAA+C;AAAA,EAC/C,+BAA+B;AAAA,EAC/B,oCAAoC;AAAA,EACpC,mCAAmC;AAAA,EACnC,0CAA0C;AAAA,EAC1C,qCAAqC;AAAA,EACrC,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,8CAA8C;AAAA,EAC9C,8CAA8C;AAAA,EAC9C,4BAA4B;AAAA,EAC5B,iCAAiC;AAAA,EACjC,sCAAsC;AAAA,EACtC,uCAAuC;AACxC;AAGO,MAAM,uBAAuB;AAAA,EACnC,YACkB,wBACA,SACA,gBACA,iBACA,0BAChB;AALgB,SAAA,yBAAA;AACA,SAAA,UAAA;AACA,SAAA,iBAAA;AACA,SAAA,kBAAA;AACA,SAAA,2BAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,IAAI,QAAgB;AACzB,UAAM,0BAA0B,KAAK,QAAQ,IAAI,aAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AAChI,UAAA,mBAAmB,WAAW,aAAa,KAAK,QAAQ,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AACpF,UAAA,iBAAiB,MAAM,OAAM,eAAc;AAC1C,YAAA,iBAAiB,OAAOA,gBAA0C;AACvE,cAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,eAAO,MAAM,KAAK,eAAe,0BAA0B,mBAAmB;AAAA,MAC/E;AACA,YAAM,oBAAoB,IAAI;AAAA,QAC7B,IAAI,0BAA0B,UAAU,UAAU;AAAA,QAClD,OAAO;AAAA,UAAY,OAAO,QAAQ,KAAK,eAAe,EAAE;AAAA,YACvD,CAAC,CAAC,OAAO,EAAE,MAAM;AAAA,cAChB;AAAA,cACA,IAAI;AAAA,gBACH,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,QAAQ,aAAa,GAAG;AAAA,gBAC9B;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QAAC;AAAA,MAEH;AACA,YAAM,mBAAmB,IAAIC,iBAAmB,YAAY,KAAK,QAAQ,cAAc,iBAAiB;AACxG,YAAM,iBAAiB,QAAQ,CAAA,YAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QAC/D,SAAS,KAAK;AAAA,QACd;AAAA,QACA,0BAA0B,CAACD,aAAuC,WAAmB;AACpF,gBAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,iBAAO,KAAK,yBAAyB,gBAAgB,oBAAoB,QAAQ,MAAM;AAAA,QAAA;AAAA,MACxF,CAEA;AAAA,IAAA,CACD;AACD,UAAM,iBAAiB,IAAI;AAAA,EAAA;AAE7B;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const Database = require("@contember/database");
|
|
4
|
-
const exceptions = require("../../../utils/exceptions.cjs");
|
|
5
4
|
class LatestTransactionIdByStageQuery extends Database.DatabaseQuery {
|
|
6
5
|
constructor(stageId) {
|
|
7
6
|
super();
|
|
@@ -9,10 +8,7 @@ class LatestTransactionIdByStageQuery extends Database.DatabaseQuery {
|
|
|
9
8
|
}
|
|
10
9
|
async fetch(queryable) {
|
|
11
10
|
const rows = await Database.SelectBuilder.create().from("stage_transaction").select("transaction_id").where({ stage_id: this.stageId }).orderBy("applied_at", "desc").limit(1).getResult(queryable.db);
|
|
12
|
-
|
|
13
|
-
throw new exceptions.ImplementationException();
|
|
14
|
-
}
|
|
15
|
-
return rows[0].transaction_id;
|
|
11
|
+
return rows.length === 0 ? null : rows[0].transaction_id;
|
|
16
12
|
}
|
|
17
13
|
}
|
|
18
14
|
exports.LatestTransactionIdByStageQuery = LatestTransactionIdByStageQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LatestTransactionIdByStageQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\
|
|
1
|
+
{"version":3,"file":"LatestTransactionIdByStageQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder"],"mappings":";;;AAEO,MAAM,wCAAwCA,SAAAA,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AACvC,UAAA;AADsB,SAAA,UAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAsD;AAC3D,UAAA,OAAO,MAAMC,uBAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAS,CAAA,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAAA;AAE5C;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { DatabaseQuery, SelectBuilder } from "@contember/database";
|
|
2
|
-
import { ImplementationException } from "../../../utils/exceptions.js";
|
|
3
2
|
class LatestTransactionIdByStageQuery extends DatabaseQuery {
|
|
4
3
|
constructor(stageId) {
|
|
5
4
|
super();
|
|
@@ -7,10 +6,7 @@ class LatestTransactionIdByStageQuery extends DatabaseQuery {
|
|
|
7
6
|
}
|
|
8
7
|
async fetch(queryable) {
|
|
9
8
|
const rows = await SelectBuilder.create().from("stage_transaction").select("transaction_id").where({ stage_id: this.stageId }).orderBy("applied_at", "desc").limit(1).getResult(queryable.db);
|
|
10
|
-
|
|
11
|
-
throw new ImplementationException();
|
|
12
|
-
}
|
|
13
|
-
return rows[0].transaction_id;
|
|
9
|
+
return rows.length === 0 ? null : rows[0].transaction_id;
|
|
14
10
|
}
|
|
15
11
|
}
|
|
16
12
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LatestTransactionIdByStageQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\
|
|
1
|
+
{"version":3,"file":"LatestTransactionIdByStageQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,wCAAwC,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AACvC,UAAA;AADsB,SAAA,UAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAsD;AAC3D,UAAA,OAAO,MAAM,cAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAS,CAAA,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAAA;AAE5C;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const Database = require("@contember/database");
|
|
3
|
+
const schemaUtils = require("@contember/schema-utils");
|
|
4
|
+
async function _20250314110000fixmissingindex(builder, args) {
|
|
5
|
+
var _a;
|
|
6
|
+
const schema = (await args.schemaResolver(args.connection)).schema;
|
|
7
|
+
const stages = (await args.connection.query("SELECT schema FROM stage")).rows;
|
|
8
|
+
const metadataByStage = {};
|
|
9
|
+
for (const entity of Object.values(schema.model.entities)) {
|
|
10
|
+
if (entity.indexes.length === 0) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
for (const stage of stages) {
|
|
14
|
+
const databaseMetadata = metadataByStage[_a = stage.schema] ?? (metadataByStage[_a] = await args.databaseMetadataResolver(args.connection, stage.schema));
|
|
15
|
+
for (const index of entity.indexes) {
|
|
16
|
+
const columns = getIndexColumns({
|
|
17
|
+
entity,
|
|
18
|
+
fields: index.fields,
|
|
19
|
+
model: schema.model
|
|
20
|
+
});
|
|
21
|
+
const indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames();
|
|
22
|
+
if (indexNames.length > 0) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const tableNameId = Database.wrapIdentifier(entity.tableName);
|
|
26
|
+
const columnNameIds = columns.map(Database.wrapIdentifier);
|
|
27
|
+
builder.sql(`CREATE INDEX ON ${Database.wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(", ")})`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const getIndexColumns = ({ entity, fields, model }) => {
|
|
33
|
+
return fields.map((fieldName) => {
|
|
34
|
+
return schemaUtils.acceptFieldVisitor(model, entity, fieldName, {
|
|
35
|
+
visitColumn: ({ column }) => {
|
|
36
|
+
return column.columnName;
|
|
37
|
+
},
|
|
38
|
+
visitManyHasOne: ({ relation }) => {
|
|
39
|
+
return relation.joiningColumn.columnName;
|
|
40
|
+
},
|
|
41
|
+
visitOneHasOneOwning: ({ relation }) => {
|
|
42
|
+
return relation.joiningColumn.columnName;
|
|
43
|
+
},
|
|
44
|
+
visitOneHasMany: () => {
|
|
45
|
+
throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
|
|
46
|
+
},
|
|
47
|
+
visitOneHasOneInverse: () => {
|
|
48
|
+
throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
|
|
49
|
+
},
|
|
50
|
+
visitManyHasManyOwning: () => {
|
|
51
|
+
throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
|
|
52
|
+
},
|
|
53
|
+
visitManyHasManyInverse: () => {
|
|
54
|
+
throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
module.exports = _20250314110000fixmissingindex;
|
|
60
|
+
//# sourceMappingURL=2025-03-14-110000-fix-missing-index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["wrapIdentifier","acceptFieldVisitor"],"mappings":";;;AAOA,eAAA,+BAA+B,SAA2B,MAA0C;AAPpG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAAwB,0BAA0B,GAAG;AAC3F,QAAM,kBAAoD,CAAC;AAE3D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AACtD,QAAA,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IAAA;AAGD,eAAW,SAAS,QAAQ;AACrB,YAAA,mBAAmB,gBAAgB,KAAA,MAAM,MAAtB,MAAA,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAEjH,iBAAA,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAC/G,YAAA,WAAW,SAAS,GAAG;AAC1B;AAAA,QAAA;AAGK,cAAA,cAAcA,SAAAA,eAAe,OAAO,SAAS;AAC7C,cAAA,gBAAgB,QAAQ,IAAIA,uBAAc;AAEhD,gBAAQ,IAAI,mBAAmBA,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAAA;AAAA,IAE3G;AAAA,EACD;AAEF;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AACzH,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAAC,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAC7F,CACA;AAAA,EAAA,CACD;AACF;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { wrapIdentifier } from "@contember/database";
|
|
2
|
+
import { acceptFieldVisitor } from "@contember/schema-utils";
|
|
3
|
+
async function _20250314110000fixmissingindex(builder, args) {
|
|
4
|
+
var _a;
|
|
5
|
+
const schema = (await args.schemaResolver(args.connection)).schema;
|
|
6
|
+
const stages = (await args.connection.query("SELECT schema FROM stage")).rows;
|
|
7
|
+
const metadataByStage = {};
|
|
8
|
+
for (const entity of Object.values(schema.model.entities)) {
|
|
9
|
+
if (entity.indexes.length === 0) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
for (const stage of stages) {
|
|
13
|
+
const databaseMetadata = metadataByStage[_a = stage.schema] ?? (metadataByStage[_a] = await args.databaseMetadataResolver(args.connection, stage.schema));
|
|
14
|
+
for (const index of entity.indexes) {
|
|
15
|
+
const columns = getIndexColumns({
|
|
16
|
+
entity,
|
|
17
|
+
fields: index.fields,
|
|
18
|
+
model: schema.model
|
|
19
|
+
});
|
|
20
|
+
const indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames();
|
|
21
|
+
if (indexNames.length > 0) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const tableNameId = wrapIdentifier(entity.tableName);
|
|
25
|
+
const columnNameIds = columns.map(wrapIdentifier);
|
|
26
|
+
builder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(", ")})`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const getIndexColumns = ({ entity, fields, model }) => {
|
|
32
|
+
return fields.map((fieldName) => {
|
|
33
|
+
return acceptFieldVisitor(model, entity, fieldName, {
|
|
34
|
+
visitColumn: ({ column }) => {
|
|
35
|
+
return column.columnName;
|
|
36
|
+
},
|
|
37
|
+
visitManyHasOne: ({ relation }) => {
|
|
38
|
+
return relation.joiningColumn.columnName;
|
|
39
|
+
},
|
|
40
|
+
visitOneHasOneOwning: ({ relation }) => {
|
|
41
|
+
return relation.joiningColumn.columnName;
|
|
42
|
+
},
|
|
43
|
+
visitOneHasMany: () => {
|
|
44
|
+
throw new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`);
|
|
45
|
+
},
|
|
46
|
+
visitOneHasOneInverse: () => {
|
|
47
|
+
throw new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`);
|
|
48
|
+
},
|
|
49
|
+
visitManyHasManyOwning: () => {
|
|
50
|
+
throw new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`);
|
|
51
|
+
},
|
|
52
|
+
visitManyHasManyInverse: () => {
|
|
53
|
+
throw new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
export {
|
|
59
|
+
_20250314110000fixmissingindex as default
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=2025-03-14-110000-fix-missing-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.js","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";;AAOA,eAAA,+BAA+B,SAA2B,MAA0C;AAPpG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAAwB,0BAA0B,GAAG;AAC3F,QAAM,kBAAoD,CAAC;AAE3D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AACtD,QAAA,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IAAA;AAGD,eAAW,SAAS,QAAQ;AACrB,YAAA,mBAAmB,gBAAgB,KAAA,MAAM,MAAtB,MAAA,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAEjH,iBAAA,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAC/G,YAAA,WAAW,SAAS,GAAG;AAC1B;AAAA,QAAA;AAGK,cAAA,cAAc,eAAe,OAAO,SAAS;AAC7C,cAAA,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,gBAAQ,IAAI,mBAAmB,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAAA;AAAA,IAE3G;AAAA,EACD;AAEF;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AACzH,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAA,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAC7F,CACA;AAAA,EAAA,CACD;AACF;"}
|
|
@@ -26,6 +26,7 @@ const _20240628150000MigrationsDropSequence = require("./2024-06-28-150000-migra
|
|
|
26
26
|
const _20240628153000Schema = require("./2024-06-28-153000-schema.cjs");
|
|
27
27
|
const _20240628153001SchemaInit = require("./2024-06-28-153001-schema-init.cjs");
|
|
28
28
|
const _20240729150000EventDataIndex = require("./2024-07-29-150000-event-data-index.cjs");
|
|
29
|
+
const _20250314110000FixMissingIndex = require("./2025-03-14-110000-fix-missing-index.cjs");
|
|
29
30
|
const snapshot = require("./snapshot.cjs");
|
|
30
31
|
const Database = require("@contember/database");
|
|
31
32
|
const migrations = {
|
|
@@ -53,7 +54,8 @@ const migrations = {
|
|
|
53
54
|
"2024-06-28-150000-migrations-drop-sequence": _20240628150000MigrationsDropSequence,
|
|
54
55
|
"2024-06-28-153000-schema": _20240628153000Schema,
|
|
55
56
|
"2024-06-28-153001-schema-init": _20240628153001SchemaInit,
|
|
56
|
-
"2024-07-29-150000-event-data-index": _20240729150000EventDataIndex
|
|
57
|
+
"2024-07-29-150000-event-data-index": _20240729150000EventDataIndex,
|
|
58
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000FixMissingIndex
|
|
57
59
|
};
|
|
58
60
|
class SystemMigrationsRunner {
|
|
59
61
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n}\n\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(Object.entries(this.migrationGroups).map(\n\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\tgroup,\n\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","_20250314110000fixmissingindex","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,aAAa;AAAA,EAClB,0BAA0BA;AAAAA,EAC1B,4CAA4CC;AAAAA,EAC5C,kCAAkCC;AAAAA,EAClC,kCAAkCC;AAAAA,EAClC,gDAAgDC;AAAAA,EAChD,gDAAgDC;AAAAA,EAChD,8CAA8CC;AAAAA,EAC9C,wCAAwCC;AAAAA,EACxC,sCAAsCC;AAAAA,EACtC,wCAAwCC;AAAAA,EACxC,mCAAmCC;AAAAA,EACnC,sCAAsCC;AAAAA,EACtC,+CAA+CC;AAAAA,EAC/C,+BAA+BC;AAAAA,EAC/B,oCAAoCC;AAAAA,EACpC,mCAAmCC;AAAAA,EACnC,0CAA0CC;AAAAA,EAC1C,qCAAqCC;AAAAA,EACrC,mCAAmCC;AAAAA,EACnC,gCAAgCC;AAAAA,EAChC,8CAA8CC;AAAAA,EAC9C,8CAA8CC;AAAAA,EAC9C,4BAA4BC;AAAAA,EAC5B,iCAAiCC;AAAAA,EACjC,sCAAsCC;AAAAA,EACtC,uCAAuCC;AACxC;AAGO,MAAM,uBAAuB;AAAA,EACnC,YACkB,wBACA,SACA,gBACA,iBACA,0BAChB;AALgB,SAAA,yBAAA;AACA,SAAA,UAAA;AACA,SAAA,iBAAA;AACA,SAAA,kBAAA;AACA,SAAA,2BAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,IAAI,QAAgB;AACzB,UAAMC,SAAAA,0BAA0B,KAAK,QAAQ,IAAI,aAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AAChI,UAAA,mBAAmBC,SAAAA,WAAW,aAAa,KAAK,QAAQ,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AACpF,UAAA,iBAAiB,MAAM,OAAM,eAAc;AAC1C,YAAA,iBAAiB,OAAOC,gBAA0C;AACvE,cAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,eAAO,MAAM,KAAK,eAAe,0BAA0B,mBAAmB;AAAA,MAC/E;AACA,YAAM,oBAAoB,IAAIC,mBAAA;AAAA,QAC7B,IAAIC,mBAA0B,0BAAA,UAAU,UAAU;AAAA,QAClD,OAAO;AAAA,UAAY,OAAO,QAAQ,KAAK,eAAe,EAAE;AAAA,YACvD,CAAC,CAAC,OAAO,EAAE,MAAM;AAAA,cAChB;AAAA,cACA,IAAIA,mBAAA;AAAA,gBACH,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,QAAQ,aAAa,GAAG;AAAA,gBAC9B;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QAAC;AAAA,MAEH;AACA,YAAM,mBAAmB,IAAIC,oCAAmB,YAAY,KAAK,QAAQ,cAAc,iBAAiB;AACxG,YAAM,iBAAiB,QAAQ,CAAA,YAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QAC/D,SAAS,KAAK;AAAA,QACd;AAAA,QACA,0BAA0B,CAACH,aAAuC,WAAmB;AACpF,gBAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,iBAAO,KAAK,yBAAyB,gBAAgB,oBAAoB,QAAQ,MAAM;AAAA,QAAA;AAAA,MACxF,CAEA;AAAA,IAAA,CACD;AACD,UAAM,iBAAiB,IAAI;AAAA,EAAA;AAE7B;;"}
|
|
@@ -24,6 +24,7 @@ import _20240628150000migrationsdropsequence from "./2024-06-28-150000-migration
|
|
|
24
24
|
import _20240628153000schema from "./2024-06-28-153000-schema.js";
|
|
25
25
|
import _20240628153001schemainit from "./2024-06-28-153001-schema-init.js";
|
|
26
26
|
import _20240729150000eventdataindex from "./2024-07-29-150000-event-data-index.js";
|
|
27
|
+
import _20250314110000fixmissingindex from "./2025-03-14-110000-fix-missing-index.js";
|
|
27
28
|
import snapshot from "./snapshot.js";
|
|
28
29
|
import { createDatabaseIfNotExists, Connection } from "@contember/database";
|
|
29
30
|
const migrations = {
|
|
@@ -51,7 +52,8 @@ const migrations = {
|
|
|
51
52
|
"2024-06-28-150000-migrations-drop-sequence": _20240628150000migrationsdropsequence,
|
|
52
53
|
"2024-06-28-153000-schema": _20240628153000schema,
|
|
53
54
|
"2024-06-28-153001-schema-init": _20240628153001schemainit,
|
|
54
|
-
"2024-07-29-150000-event-data-index": _20240729150000eventdataindex
|
|
55
|
+
"2024-07-29-150000-event-data-index": _20240729150000eventdataindex,
|
|
56
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000fixmissingindex
|
|
55
57
|
};
|
|
56
58
|
class SystemMigrationsRunner {
|
|
57
59
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|