@contember/cli 1.4.0-alpha.4 → 1.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/commands/deploy/DeployCommand.js +2 -2
- package/dist/src/commands/deploy/DeployCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationDiffCommand.js +2 -2
- package/dist/src/commands/migrations/MigrationDiffCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationExecuteCommand.js +2 -2
- package/dist/src/commands/migrations/MigrationExecuteCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationStatusCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationStatusCommand.js +5 -4
- package/dist/src/commands/migrations/MigrationStatusCommand.js.map +1 -1
- package/dist/src/commands/migrations/SystemApiClientResolver.d.ts +1 -1
- package/dist/src/commands/migrations/SystemApiClientResolver.d.ts.map +1 -1
- package/dist/src/commands/migrations/SystemApiClientResolver.js +2 -2
- package/dist/src/commands/migrations/SystemApiClientResolver.js.map +1 -1
- package/dist/src/commands/project/ProjectPrintSchemaCommand.d.ts +1 -0
- package/dist/src/commands/project/ProjectPrintSchemaCommand.d.ts.map +1 -1
- package/dist/src/commands/project/ProjectPrintSchemaCommand.js +7 -1
- package/dist/src/commands/project/ProjectPrintSchemaCommand.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/migrations/MigrationCreateHelper.d.ts +1 -5
- package/dist/src/utils/migrations/MigrationCreateHelper.d.ts.map +1 -1
- package/dist/src/utils/migrations/MigrationCreateHelper.js.map +1 -1
- package/dist/src/utils/migrations/MigrationExecuteHelper.d.ts +6 -7
- package/dist/src/utils/migrations/MigrationExecuteHelper.d.ts.map +1 -1
- package/dist/src/utils/migrations/MigrationExecuteHelper.js +12 -52
- package/dist/src/utils/migrations/MigrationExecuteHelper.js.map +1 -1
- package/dist/src/utils/migrations/MigrationsContainer.d.ts +4 -4
- package/dist/src/utils/migrations/MigrationsContainer.d.ts.map +1 -1
- package/dist/src/utils/migrations/MigrationsContainer.js +23 -15
- package/dist/src/utils/migrations/MigrationsContainer.js.map +1 -1
- package/dist/src/utils/migrations/migrations.d.ts +2 -54
- package/dist/src/utils/migrations/migrations.d.ts.map +1 -1
- package/dist/src/utils/migrations/migrations.js +7 -88
- package/dist/src/utils/migrations/migrations.js.map +1 -1
- package/package.json +10 -10
- package/src/commands/deploy/DeployCommand.ts +1 -1
- package/src/commands/migrations/MigrationDiffCommand.ts +1 -1
- package/src/commands/migrations/MigrationExecuteCommand.ts +1 -1
- package/src/commands/migrations/MigrationStatusCommand.ts +3 -2
- package/src/commands/migrations/SystemApiClientResolver.ts +1 -1
- package/src/commands/project/ProjectPrintSchemaCommand.ts +9 -1
- package/src/tsconfig.json +1 -1
- package/src/utils/migrations/MigrationCreateHelper.ts +8 -5
- package/src/utils/migrations/MigrationExecuteHelper.ts +23 -61
- package/src/utils/migrations/MigrationsContainer.ts +20 -12
- package/src/utils/migrations/migrations.ts +3 -148
- package/dist/src/utils/migrations/JsLoader.d.ts +0 -9
- package/dist/src/utils/migrations/JsLoader.d.ts.map +0 -1
- package/dist/src/utils/migrations/JsLoader.js +0 -33
- package/dist/src/utils/migrations/JsLoader.js.map +0 -1
- package/dist/src/utils/migrations/JsonLoader.d.ts +0 -9
- package/dist/src/utils/migrations/JsonLoader.d.ts.map +0 -1
- package/dist/src/utils/migrations/JsonLoader.js +0 -17
- package/dist/src/utils/migrations/JsonLoader.js.map +0 -1
- package/dist/src/utils/migrations/MigrationCreator.d.ts +0 -21
- package/dist/src/utils/migrations/MigrationCreator.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationCreator.js +0 -47
- package/dist/src/utils/migrations/MigrationCreator.js.map +0 -1
- package/dist/src/utils/migrations/MigrationFile.d.ts +0 -36
- package/dist/src/utils/migrations/MigrationFile.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationFile.js +0 -6
- package/dist/src/utils/migrations/MigrationFile.js.map +0 -1
- package/dist/src/utils/migrations/MigrationFileLoader.d.ts +0 -5
- package/dist/src/utils/migrations/MigrationFileLoader.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationFileLoader.js +0 -3
- package/dist/src/utils/migrations/MigrationFileLoader.js.map +0 -1
- package/dist/src/utils/migrations/MigrationFilesManager.d.ts +0 -18
- package/dist/src/utils/migrations/MigrationFilesManager.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationFilesManager.js +0 -114
- package/dist/src/utils/migrations/MigrationFilesManager.js.map +0 -1
- package/dist/src/utils/migrations/MigrationParser.d.ts +0 -6
- package/dist/src/utils/migrations/MigrationParser.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationParser.js +0 -33
- package/dist/src/utils/migrations/MigrationParser.js.map +0 -1
- package/dist/src/utils/migrations/MigrationsResolver.d.ts +0 -14
- package/dist/src/utils/migrations/MigrationsResolver.d.ts.map +0 -1
- package/dist/src/utils/migrations/MigrationsResolver.js +0 -37
- package/dist/src/utils/migrations/MigrationsResolver.js.map +0 -1
- package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts +0 -13
- package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts.map +0 -1
- package/dist/src/utils/migrations/SchemaVersionBuilder.js +0 -26
- package/dist/src/utils/migrations/SchemaVersionBuilder.js.map +0 -1
- package/dist/src/utils/system/index.d.ts +0 -30
- package/dist/src/utils/system/index.d.ts.map +0 -1
- package/dist/src/utils/system/index.js +0 -118
- package/dist/src/utils/system/index.js.map +0 -1
- package/src/utils/migrations/JsLoader.ts +0 -37
- package/src/utils/migrations/JsonLoader.ts +0 -18
- package/src/utils/migrations/MigrationCreator.ts +0 -60
- package/src/utils/migrations/MigrationFile.ts +0 -52
- package/src/utils/migrations/MigrationFileLoader.ts +0 -5
- package/src/utils/migrations/MigrationFilesManager.ts +0 -102
- package/src/utils/migrations/MigrationParser.ts +0 -32
- package/src/utils/migrations/MigrationsResolver.ts +0 -44
- package/src/utils/migrations/SchemaVersionBuilder.ts +0 -33
- package/src/utils/system/index.ts +0 -150
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Input, Project, Workspace } from '@contember/cli-common';
|
|
2
|
-
import { MigrationDescriber, SchemaMigrator } from '@contember/
|
|
3
|
-
import { MigrationCreator } from './MigrationCreator';
|
|
4
|
-
import { MigrationsResolver } from './MigrationsResolver';
|
|
5
|
-
import { SchemaVersionBuilder } from './SchemaVersionBuilder';
|
|
6
|
-
import { MigrationFilesManager } from './MigrationFilesManager';
|
|
2
|
+
import { MigrationCreator, MigrationDescriber, MigrationFilesManager, MigrationsResolver, SchemaMigrator, SchemaVersionBuilder } from '@contember/migrations-client';
|
|
7
3
|
type Args = {
|
|
8
4
|
project?: string;
|
|
9
5
|
migrationName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationCreateHelper.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationCreateHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjE,OAAO,
|
|
1
|
+
{"version":3,"file":"MigrationCreateHelper.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationCreateHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjE,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,MAAM,8BAA8B,CAAA;AAErC,KAAK,IAAI,GAAG;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,OAAO,GAAG,EAAE,CAAA;AAEjB,eAAO,MAAM,6BAA6B,UAClC,MAAM,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC;eACjB,SAAS;;eAExB,SAAS;aACX,OAAO;sBACE,gBAAgB;wBACd,kBAAkB;wBAClB,kBAAkB;0BAChB,oBAAoB;oBAC1B,cAAc;2BACP,qBAAqB;MACvC,QAAQ,MAAM,CAAC,oBA4BrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationCreateHelper.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationCreateHelper.ts"],"names":[],"mappings":";;;AACA,+DAAkE;
|
|
1
|
+
{"version":3,"file":"MigrationCreateHelper.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationCreateHelper.ts"],"names":[],"mappings":";;;AACA,+DAAkE;AAiB3D,MAAM,6BAA6B,GAAG,KAAK,EACjD,KAA4C,EAC5C,EAAE,SAAS,EAA0B,EACrC,uBASqB,EACpB,EAAE;IACH,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,WAAW,KAAK,GAAG,CAAA;IACvC,MAAM,QAAQ,GAAG,WAAW;QAC3B,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE;QACzC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAEtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,IAAI,gDAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAA;QAEhF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC5C,OAAO;YACP,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;YACpD,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;YACtD,SAAS;SACT,CAAC,CAAA;QACF,OAAO,CAAC,QAAQ,EAAE,CAAA;QAClB,IAAI,MAAM,GAAG,CAAC,EAAE;YACf,OAAO,MAAM,CAAA;SACb;KACD;IACD,OAAO,CAAC,CAAA;AACT,CAAC,CAAA;AAxCY,QAAA,6BAA6B,iCAwCzC"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { CommandConfiguration } from '@contember/cli-common';
|
|
2
|
-
import { SystemClient } from '
|
|
3
|
-
import { getMigrationsStatus, MigrationToExecuteOkStatus } from './migrations';
|
|
4
|
-
import { MigrationDescriber } from '@contember/schema-migrations';
|
|
5
|
-
import { MigrationsResolver } from './MigrationsResolver';
|
|
6
|
-
import { SchemaVersionBuilder } from './SchemaVersionBuilder';
|
|
7
|
-
import { ContentMigrationFactoryArgs } from './MigrationFile';
|
|
2
|
+
import { ContentMigrationFactoryArgs, MigrationDescriber, MigrationsResolver, MigrationToExecuteOkStatus, SchemaVersionBuilder, SystemClient } from '@contember/migrations-client';
|
|
8
3
|
export type ExecuteMigrationOptions = {
|
|
9
4
|
instance?: string;
|
|
10
5
|
['remote-project']?: string;
|
|
11
6
|
yes?: true;
|
|
12
7
|
};
|
|
13
8
|
export declare const configureExecuteMigrationCommand: (configuration: CommandConfiguration<{}, ExecuteMigrationOptions>) => void;
|
|
14
|
-
export declare const resolveMigrationStatus: (client: SystemClient, migrationsResolver: MigrationsResolver, force?: boolean) => Promise<
|
|
9
|
+
export declare const resolveMigrationStatus: (client: SystemClient, migrationsResolver: MigrationsResolver, force?: boolean) => Promise<{
|
|
10
|
+
allMigrations: import("@contember/migrations-client").AnyMigrationStatus[];
|
|
11
|
+
errorMigrations: import("@contember/migrations-client").ErrorMigrationStatus[];
|
|
12
|
+
migrationsToExecute: MigrationToExecuteOkStatus[];
|
|
13
|
+
}>;
|
|
15
14
|
export declare const executeMigrations: ({ client, migrations, requireConfirmation, schemaVersionBuilder, migrationDescriber, contentMigrationFactoryArgs, force, }: {
|
|
16
15
|
client: SystemClient;
|
|
17
16
|
migrations: MigrationToExecuteOkStatus[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationExecuteHelper.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationExecuteHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"MigrationExecuteHelper.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationExecuteHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACN,2BAA2B,EAE3B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,YAAY,EAGZ,MAAM,8BAA8B,CAAA;AAIrC,MAAM,MAAM,uBAAuB,GAAG;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAA;IAC3B,GAAG,CAAC,EAAE,IAAI,CAAA;CACV,CAAA;AAED,eAAO,MAAM,gCAAgC,kBAAmB,qBAAqB,EAAE,EAAE,uBAAuB,CAAC,SAahH,CAAA;AAED,eAAO,MAAM,sBAAsB,WAC1B,YAAY,sBACA,kBAAkB,UAC/B,OAAO;;;;EAMd,CAAA;AAED,eAAO,MAAM,iBAAiB;YASrB,YAAY;gBACR,0BAA0B,EAAE;yBACnB,OAAO;0BACN,oBAAoB;wBACtB,kBAAkB;iCACT,2BAA2B;;MAErD,QAAQ,MAAM,CAmDjB,CAAA"}
|
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.executeMigrations = exports.resolveMigrationStatus = exports.configureExecuteMigrationCommand = void 0;
|
|
7
|
+
const migrations_client_1 = require("@contember/migrations-client");
|
|
7
8
|
const migrations_1 = require("./migrations");
|
|
8
9
|
const prompts_1 = __importDefault(require("prompts"));
|
|
9
|
-
const MigrationFile_1 = require("./MigrationFile");
|
|
10
|
-
const assertNever_1 = require("../assertNever");
|
|
11
10
|
const configureExecuteMigrationCommand = (configuration) => {
|
|
12
11
|
configuration //
|
|
13
12
|
.option('instance')
|
|
@@ -24,9 +23,10 @@ const configureExecuteMigrationCommand = (configuration) => {
|
|
|
24
23
|
};
|
|
25
24
|
exports.configureExecuteMigrationCommand = configureExecuteMigrationCommand;
|
|
26
25
|
const resolveMigrationStatus = async (client, migrationsResolver, force = false) => {
|
|
26
|
+
const migrationStatusResolver = new migrations_client_1.MigrationsStatusResolver();
|
|
27
27
|
const executedMigrations = await client.listExecutedMigrations();
|
|
28
28
|
const localMigrations = await migrationsResolver.getMigrationFiles();
|
|
29
|
-
return
|
|
29
|
+
return migrationStatusResolver.getMigrationsStatus(executedMigrations, localMigrations, force);
|
|
30
30
|
};
|
|
31
31
|
exports.resolveMigrationStatus = resolveMigrationStatus;
|
|
32
32
|
const executeMigrations = async ({ client, migrations, requireConfirmation, schemaVersionBuilder, migrationDescriber, contentMigrationFactoryArgs, force, }) => {
|
|
@@ -54,7 +54,7 @@ const executeMigrations = async ({ client, migrations, requireConfirmation, sche
|
|
|
54
54
|
const schema = await schemaVersionBuilder.buildSchemaUntil(migrations[0].version);
|
|
55
55
|
for (const migration of migrations) {
|
|
56
56
|
const migrationContent = await migration.localMigration.getContent();
|
|
57
|
-
if (!(0,
|
|
57
|
+
if (!(0, migrations_client_1.isSchemaMigration)(migrationContent)) {
|
|
58
58
|
continue;
|
|
59
59
|
}
|
|
60
60
|
await (0, migrations_1.printMigrationDescription)(migrationDescriber, schema, migrationContent, {
|
|
@@ -70,54 +70,14 @@ const executeMigrations = async ({ client, migrations, requireConfirmation, sche
|
|
|
70
70
|
}
|
|
71
71
|
} while (true);
|
|
72
72
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
version: it.version,
|
|
82
|
-
name: it.name,
|
|
83
|
-
type: 'SCHEMA',
|
|
84
|
-
schemaMigration: {
|
|
85
|
-
formatVersion: it.formatVersion,
|
|
86
|
-
modifications: it.modifications,
|
|
87
|
-
skippedErrors: it.skippedErrors,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
if (it.type === 'content') {
|
|
92
|
-
return {
|
|
93
|
-
version: it.version,
|
|
94
|
-
name: it.name,
|
|
95
|
-
type: 'CONTENT',
|
|
96
|
-
contentMigration: it.queries,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return (0, assertNever_1.assertNever)(it);
|
|
100
|
-
}), force);
|
|
101
|
-
migrationsToRun.forEach(it => {
|
|
102
|
-
console.log(it.name);
|
|
103
|
-
});
|
|
104
|
-
migrationsToRun = [];
|
|
105
|
-
};
|
|
106
|
-
console.log('Executing...');
|
|
107
|
-
for (const migration of migrations) {
|
|
108
|
-
const migrationContent = await migration.localMigration.getContent();
|
|
109
|
-
if (migrationContent.type === 'factory') {
|
|
110
|
-
await executeMigrations();
|
|
111
|
-
const result = await migrationContent.factory(contentMigrationFactoryArgs);
|
|
112
|
-
migrationsToRun.push(result);
|
|
113
|
-
await executeMigrations();
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
migrationsToRun.push(migrationContent);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
await executeMigrations();
|
|
120
|
-
console.log('Migration executed');
|
|
73
|
+
const executor = new migrations_client_1.MigrationExecutor();
|
|
74
|
+
await executor.executeMigrations({
|
|
75
|
+
client,
|
|
76
|
+
migrations,
|
|
77
|
+
contentMigrationFactoryArgs,
|
|
78
|
+
log: message => console.log(message),
|
|
79
|
+
force,
|
|
80
|
+
});
|
|
121
81
|
return 0;
|
|
122
82
|
};
|
|
123
83
|
exports.executeMigrations = executeMigrations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationExecuteHelper.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationExecuteHelper.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"MigrationExecuteHelper.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationExecuteHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MigrationDescriber, SchemaDiffer, SchemaMigrator } from '@contember/schema-migrations';
|
|
2
|
-
import { MigrationCreator } from '
|
|
3
|
-
import { SchemaVersionBuilder } from '
|
|
4
|
-
import { MigrationsResolver } from '
|
|
5
|
-
import { MigrationFilesManager } from '
|
|
2
|
+
import { MigrationCreator } from '@contember/migrations-client';
|
|
3
|
+
import { SchemaVersionBuilder } from '@contember/migrations-client';
|
|
4
|
+
import { MigrationsResolver } from '@contember/migrations-client';
|
|
5
|
+
import { MigrationFilesManager } from '@contember/migrations-client';
|
|
6
6
|
export interface MigrationsContainer {
|
|
7
7
|
migrationCreator: MigrationCreator;
|
|
8
8
|
migrationDescriber: MigrationDescriber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationsContainer.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA8B,YAAY,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAA;AAC3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MigrationsContainer.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA8B,YAAY,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAA;AAC3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAMpE,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,cAAc,EAAE,cAAc,CAAA;CAC9B;AAaD,qBAAa,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAEvC,MAAM,IAAI,mBAAmB;CA4CpC"}
|
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MigrationsContainerFactory = void 0;
|
|
4
4
|
const dic_1 = require("@contember/dic");
|
|
5
5
|
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
6
|
+
const migrations_client_1 = require("@contember/migrations-client");
|
|
7
|
+
const migrations_client_2 = require("@contember/migrations-client");
|
|
8
|
+
const migrations_client_3 = require("@contember/migrations-client");
|
|
9
|
+
const migrations_client_4 = require("@contember/migrations-client");
|
|
10
|
+
const migrations_client_5 = require("@contember/migrations-client");
|
|
11
|
+
const migrations_client_6 = require("@contember/migrations-client");
|
|
12
|
+
const migrations_client_7 = require("@contember/migrations-client");
|
|
13
|
+
const esbuild_1 = require("../esbuild");
|
|
13
14
|
const jsSample = `
|
|
14
15
|
export const query = \`\`
|
|
15
16
|
export const variables = {}
|
|
@@ -26,17 +27,24 @@ class MigrationsContainerFactory {
|
|
|
26
27
|
}
|
|
27
28
|
create() {
|
|
28
29
|
return new dic_1.Builder({})
|
|
29
|
-
.addService('migrationFilesManager', () =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
.addService('migrationFilesManager', () => {
|
|
31
|
+
const jsExecutor = async (file) => {
|
|
32
|
+
const code = await (0, esbuild_1.buildJs)(file);
|
|
33
|
+
const fn = new Function(`var module = {}; ((module) => { ${code} })(module); return module`);
|
|
34
|
+
return fn().exports;
|
|
35
|
+
};
|
|
36
|
+
return new migrations_client_4.MigrationFilesManager(this.directory, {
|
|
37
|
+
json: new migrations_client_5.JsonLoader(new migrations_client_6.MigrationParser()),
|
|
38
|
+
ts: new migrations_client_7.JsLoader(new migrations_client_6.MigrationParser(), jsExecutor),
|
|
39
|
+
js: new migrations_client_7.JsLoader(new migrations_client_6.MigrationParser(), jsExecutor),
|
|
40
|
+
});
|
|
41
|
+
})
|
|
34
42
|
.addService('modificationHandlerFactory', () => new schema_migrations_1.ModificationHandlerFactory(schema_migrations_1.ModificationHandlerFactory.defaultFactoryMap))
|
|
35
43
|
.addService('schemaMigrator', ({ modificationHandlerFactory }) => new schema_migrations_1.SchemaMigrator(modificationHandlerFactory))
|
|
36
|
-
.addService('migrationsResolver', ({ migrationFilesManager }) => new
|
|
37
|
-
.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) => new
|
|
44
|
+
.addService('migrationsResolver', ({ migrationFilesManager }) => new migrations_client_3.MigrationsResolver(migrationFilesManager))
|
|
45
|
+
.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) => new migrations_client_2.SchemaVersionBuilder(migrationsResolver, schemaMigrator))
|
|
38
46
|
.addService('schemaDiffer', ({ schemaMigrator }) => new schema_migrations_1.SchemaDiffer(schemaMigrator))
|
|
39
|
-
.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) => new
|
|
47
|
+
.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) => new migrations_client_1.MigrationCreator(migrationFilesManager, schemaDiffer, {
|
|
40
48
|
json: JSON.stringify({ formatVersion: schema_migrations_1.VERSION_LATEST, modifications: [] }, undefined, '\t') + '\n',
|
|
41
49
|
ts: jsSample,
|
|
42
50
|
js: jsSample,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationsContainer.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,oEAA2I;AAC3I,
|
|
1
|
+
{"version":3,"file":"MigrationsContainer.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,oEAA2I;AAC3I,oEAA+D;AAC/D,oEAAmE;AACnE,oEAAiE;AACjE,oEAAoE;AACpE,oEAAyD;AACzD,oEAA8D;AAC9D,oEAAuD;AACvD,wCAAoC;AAYpC,MAAM,QAAQ,GAAG;;;;;;;;;CAShB,CAAA;AAED,MAAa,0BAA0B;IACtC,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE3C,MAAM;QACZ,OAAO,IAAI,aAAO,CAAC,EAAE,CAAC;aACpB,UAAU,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACzC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAA;gBAChC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,mCAAmC,IAAI,4BAA4B,CAAC,CAAA;gBAC5F,OAAO,EAAE,EAAE,CAAC,OAAO,CAAA;YACpB,CAAC,CAAA;YAED,OAAO,IAAI,yCAAqB,CAAC,IAAI,CAAC,SAAS,EAAE;gBAChD,IAAI,EAAE,IAAI,8BAAU,CAAC,IAAI,mCAAe,EAAE,CAAC;gBAC3C,EAAE,EAAE,IAAI,4BAAQ,CAAC,IAAI,mCAAe,EAAE,EAAE,UAAU,CAAC;gBACnD,EAAE,EAAE,IAAI,4BAAQ,CAAC,IAAI,mCAAe,EAAE,EAAE,UAAU,CAAC;aACnD,CAAC,CAAA;QACH,CAAC,CAAC;aACD,UAAU,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAC9C,IAAI,8CAA0B,CAAC,8CAA0B,CAAC,iBAAiB,CAAC,CAAC;aAC7E,UAAU,CAAC,gBAAgB,EAAE,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAChE,IAAI,kCAAc,CAAC,0BAA0B,CAAC,CAAC;aAC/C,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAC/D,IAAI,sCAAkB,CAAC,qBAAqB,CAAC,CAAC;aAC9C,UAAU,CAAC,sBAAsB,EAAE,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAAE,EAAE,CAC9E,IAAI,wCAAoB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;aAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAClD,IAAI,gCAAY,CAAC,cAAc,CAAC,CAAC;aACjC,UAAU,CAAC,kBAAkB,EAAE,CAAC,EAAE,qBAAqB,EAAE,YAAY,EAAE,EAAE,EAAE,CAC3E,IAAI,oCAAgB,CAAC,qBAAqB,EAAE,YAAY,EAAE;YACzD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,kCAAc,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI;YAClG,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACZ,CAAC,CAAC;aACH,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CACpE,IAAI,sCAAkB,CAAC,0BAA0B,CAAC,CAAC;aACnD,KAAK,EAAE;aACP,IAAI,CACJ,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,CAChB,CAAA;IACH,CAAC;CACD;AA/CD,gEA+CC"}
|
|
@@ -1,61 +1,9 @@
|
|
|
1
|
-
import { Migration, MigrationDescriber
|
|
1
|
+
import { Migration, MigrationDescriber } from '@contember/schema-migrations';
|
|
2
2
|
import { Schema } from '@contember/schema';
|
|
3
|
-
import {
|
|
3
|
+
import { AnyMigrationStatus } from '@contember/migrations-client';
|
|
4
4
|
export declare const printMigrationDescription: (migrationsDescriber: MigrationDescriber, schema: Schema, migration: Migration, options: {
|
|
5
5
|
sqlOnly?: boolean;
|
|
6
6
|
noSql?: boolean;
|
|
7
7
|
}) => void;
|
|
8
|
-
export interface ExecutedMigrationInfo extends MigrationInfo {
|
|
9
|
-
readonly executedAt: Date;
|
|
10
|
-
readonly checksum: string;
|
|
11
|
-
}
|
|
12
|
-
export interface ExecutedMigration extends Migration {
|
|
13
|
-
readonly executedAt: Date;
|
|
14
|
-
readonly checksum: string;
|
|
15
|
-
}
|
|
16
|
-
export declare enum MigrationState {
|
|
17
|
-
TO_EXECUTE_OK = "to_execute_ok",
|
|
18
|
-
TO_EXECUTE_ERROR = "to_execute_error",
|
|
19
|
-
EXECUTED_OK = "executed_ok",
|
|
20
|
-
EXECUTED_ERROR = "executed_error",
|
|
21
|
-
EXECUTED_MISSING = "executed_missing"
|
|
22
|
-
}
|
|
23
|
-
export interface MigrationStatusBase<S extends MigrationState> {
|
|
24
|
-
state: S;
|
|
25
|
-
version: string;
|
|
26
|
-
name: string;
|
|
27
|
-
}
|
|
28
|
-
export interface MigrationToExecuteOkStatus extends MigrationStatusBase<MigrationState.TO_EXECUTE_OK> {
|
|
29
|
-
localMigration: MigrationFile;
|
|
30
|
-
}
|
|
31
|
-
interface MigrationToExecuteInvalidStatus extends MigrationStatusBase<MigrationState.TO_EXECUTE_ERROR> {
|
|
32
|
-
localMigration: MigrationFile;
|
|
33
|
-
errorMessage: string;
|
|
34
|
-
}
|
|
35
|
-
interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK> {
|
|
36
|
-
executedMigration: ExecutedMigrationInfo;
|
|
37
|
-
localMigration: MigrationFile;
|
|
38
|
-
}
|
|
39
|
-
interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING> {
|
|
40
|
-
executedMigration: ExecutedMigrationInfo;
|
|
41
|
-
errorMessage: string;
|
|
42
|
-
}
|
|
43
|
-
interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR> {
|
|
44
|
-
executedMigration: ExecutedMigrationInfo;
|
|
45
|
-
localMigration: MigrationFile;
|
|
46
|
-
errorMessage: string;
|
|
47
|
-
}
|
|
48
|
-
export type ErrorMigrationStatus = MigrationToExecuteInvalidStatus | MigrationExecutedMissingStatus | MigrationExecutedErrorStatus;
|
|
49
|
-
export type AnyMigrationStatus = ErrorMigrationStatus | MigrationToExecuteOkStatus | MigrationExecutedOkStatus;
|
|
50
|
-
export declare const isErrorMigrationStatus: (migration: AnyMigrationStatus) => migration is ErrorMigrationStatus;
|
|
51
|
-
export declare const sortMigrations: <M extends {
|
|
52
|
-
version: string;
|
|
53
|
-
}>(migrations: M[]) => M[];
|
|
54
|
-
export declare const getMigrationsStatus: (executedMigrations: ExecutedMigrationInfo[], localMigrations: MigrationFile[], force?: boolean) => Promise<{
|
|
55
|
-
allMigrations: AnyMigrationStatus[];
|
|
56
|
-
errorMigrations: ErrorMigrationStatus[];
|
|
57
|
-
migrationsToExecute: MigrationToExecuteOkStatus[];
|
|
58
|
-
}>;
|
|
59
8
|
export declare const createMigrationStatusTable: (migrations: AnyMigrationStatus[]) => string;
|
|
60
|
-
export {};
|
|
61
9
|
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,eAAO,MAAM,yBAAyB,wBAChB,kBAAkB,UAC/B,MAAM,aACH,SAAS,WACX;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,SA8B/C,CAAA;AAED,eAAO,MAAM,0BAA0B,eAAgB,kBAAkB,EAAE,KAAG,MAkC7E,CAAA"}
|
|
@@ -3,13 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createMigrationStatusTable = exports.
|
|
7
|
-
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
6
|
+
exports.createMigrationStatusTable = exports.printMigrationDescription = void 0;
|
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
8
|
const chalk_table_1 = __importDefault(require("chalk-table"));
|
|
10
9
|
const assertNever_1 = require("../assertNever");
|
|
11
10
|
const database_1 = require("@contember/database");
|
|
12
|
-
const
|
|
11
|
+
const migrations_client_1 = require("@contember/migrations-client");
|
|
13
12
|
const printMigrationDescription = function (migrationsDescriber, schema, migration, options) {
|
|
14
13
|
const description = migrationsDescriber.describeModifications(schema, migration);
|
|
15
14
|
description.forEach(({ modification, getSql, description }) => {
|
|
@@ -42,112 +41,32 @@ const printMigrationDescription = function (migrationsDescriber, schema, migrati
|
|
|
42
41
|
});
|
|
43
42
|
};
|
|
44
43
|
exports.printMigrationDescription = printMigrationDescription;
|
|
45
|
-
var MigrationState;
|
|
46
|
-
(function (MigrationState) {
|
|
47
|
-
MigrationState["TO_EXECUTE_OK"] = "to_execute_ok";
|
|
48
|
-
MigrationState["TO_EXECUTE_ERROR"] = "to_execute_error";
|
|
49
|
-
MigrationState["EXECUTED_OK"] = "executed_ok";
|
|
50
|
-
MigrationState["EXECUTED_ERROR"] = "executed_error";
|
|
51
|
-
MigrationState["EXECUTED_MISSING"] = "executed_missing";
|
|
52
|
-
})(MigrationState || (exports.MigrationState = MigrationState = {}));
|
|
53
|
-
const isErrorMigrationStatus = (migration) => [MigrationState.EXECUTED_ERROR, MigrationState.EXECUTED_MISSING, MigrationState.TO_EXECUTE_ERROR].includes(migration.state);
|
|
54
|
-
exports.isErrorMigrationStatus = isErrorMigrationStatus;
|
|
55
|
-
const sortMigrations = (migrations) => {
|
|
56
|
-
return [...migrations].sort((a, b) => a.version.localeCompare(b.version));
|
|
57
|
-
};
|
|
58
|
-
exports.sortMigrations = sortMigrations;
|
|
59
|
-
const getMigrationsStatus = async (executedMigrations, localMigrations, force = false) => {
|
|
60
|
-
const sortedExecuted = (0, exports.sortMigrations)(executedMigrations);
|
|
61
|
-
const allMigrations = [];
|
|
62
|
-
for (const executed of sortedExecuted) {
|
|
63
|
-
const localMigration = localMigrations.find(it => it.version === executed.version);
|
|
64
|
-
if (!localMigration) {
|
|
65
|
-
allMigrations.push({
|
|
66
|
-
state: MigrationState.EXECUTED_MISSING,
|
|
67
|
-
executedMigration: executed,
|
|
68
|
-
version: executed.version,
|
|
69
|
-
name: executed.name,
|
|
70
|
-
errorMessage: `Migration ${executed.name} is missing locally`,
|
|
71
|
-
});
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
const migrationContent = await localMigration.getContent();
|
|
75
|
-
const localChecksum = !(0, MigrationFile_1.isSchemaMigration)(migrationContent) ? null : (0, schema_migrations_1.calculateMigrationChecksum)(migrationContent);
|
|
76
|
-
if (localChecksum !== executed.checksum) {
|
|
77
|
-
allMigrations.push({
|
|
78
|
-
state: MigrationState.EXECUTED_ERROR,
|
|
79
|
-
executedMigration: executed,
|
|
80
|
-
version: executed.version,
|
|
81
|
-
name: executed.name,
|
|
82
|
-
localMigration,
|
|
83
|
-
errorMessage: `Checksum of executed migration "${executed.checksum}" does not match "${localChecksum}"`,
|
|
84
|
-
});
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
allMigrations.push({
|
|
88
|
-
state: MigrationState.EXECUTED_OK,
|
|
89
|
-
executedMigration: executed,
|
|
90
|
-
version: executed.version,
|
|
91
|
-
name: executed.name,
|
|
92
|
-
localMigration,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
const latestExecuted = sortedExecuted.length > 0 ? sortedExecuted[sortedExecuted.length - 1] : null;
|
|
96
|
-
for (const localMigration of localMigrations) {
|
|
97
|
-
if (allMigrations.find(it => it.version === localMigration.version)) {
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
if (latestExecuted && latestExecuted.version > localMigration.version) {
|
|
101
|
-
allMigrations.push({
|
|
102
|
-
state: MigrationState.TO_EXECUTE_ERROR,
|
|
103
|
-
localMigration,
|
|
104
|
-
version: localMigration.version,
|
|
105
|
-
name: localMigration.name,
|
|
106
|
-
errorMessage: `Must follow latest executed migration ${latestExecuted.name}`,
|
|
107
|
-
});
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
allMigrations.push({
|
|
111
|
-
state: MigrationState.TO_EXECUTE_OK,
|
|
112
|
-
localMigration,
|
|
113
|
-
version: localMigration.version,
|
|
114
|
-
name: localMigration.name,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
const allMigrationsSorted = (0, exports.sortMigrations)(allMigrations);
|
|
118
|
-
return {
|
|
119
|
-
allMigrations: allMigrationsSorted,
|
|
120
|
-
errorMigrations: allMigrationsSorted.filter(exports.isErrorMigrationStatus),
|
|
121
|
-
migrationsToExecute: allMigrationsSorted.filter((it) => it.state === MigrationState.TO_EXECUTE_OK || (force && it.state === MigrationState.TO_EXECUTE_ERROR)),
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
exports.getMigrationsStatus = getMigrationsStatus;
|
|
125
44
|
const createMigrationStatusTable = (migrations) => {
|
|
126
45
|
return (0, chalk_table_1.default)({
|
|
127
46
|
columns: ['status', 'migration', 'info'],
|
|
128
47
|
}, migrations.map(it => {
|
|
129
48
|
switch (it.state) {
|
|
130
|
-
case MigrationState.EXECUTED_ERROR:
|
|
49
|
+
case migrations_client_1.MigrationState.EXECUTED_ERROR:
|
|
131
50
|
return { status: chalk_1.default.bgRedBright.white('ERROR'), migration: it.name, info: it.errorMessage };
|
|
132
|
-
case MigrationState.EXECUTED_OK:
|
|
51
|
+
case migrations_client_1.MigrationState.EXECUTED_OK:
|
|
133
52
|
return {
|
|
134
53
|
status: chalk_1.default.bgGreen.blackBright('Executed'),
|
|
135
54
|
migration: it.name,
|
|
136
55
|
info: `Executed at ${it.executedMigration.executedAt.toISOString()}`,
|
|
137
56
|
};
|
|
138
|
-
case MigrationState.EXECUTED_MISSING:
|
|
57
|
+
case migrations_client_1.MigrationState.EXECUTED_MISSING:
|
|
139
58
|
return {
|
|
140
59
|
status: chalk_1.default.bgRedBright.white('ERROR'),
|
|
141
60
|
migration: it.name,
|
|
142
61
|
info: it.errorMessage,
|
|
143
62
|
};
|
|
144
|
-
case MigrationState.TO_EXECUTE_OK:
|
|
63
|
+
case migrations_client_1.MigrationState.TO_EXECUTE_OK:
|
|
145
64
|
return {
|
|
146
65
|
status: chalk_1.default.bgBlueBright.white('Not executed'),
|
|
147
66
|
migration: it.name,
|
|
148
67
|
info: 'Will be executed during next deploy',
|
|
149
68
|
};
|
|
150
|
-
case MigrationState.TO_EXECUTE_ERROR:
|
|
69
|
+
case migrations_client_1.MigrationState.TO_EXECUTE_ERROR:
|
|
151
70
|
return { status: chalk_1.default.bgRedBright.white('ERROR'), migration: it.name, info: it.errorMessage };
|
|
152
71
|
default:
|
|
153
72
|
(0, assertNever_1.assertNever)(it);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/cli",
|
|
3
|
-
"version": "1.4.0-
|
|
3
|
+
"version": "1.4.0-beta.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"bin": {
|
|
6
6
|
"contember": "./dist/src/run.js"
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
"tailwindcss": "^3.3.5"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@contember/cli-common": "1.4.0-
|
|
24
|
-
"@contember/config-loader": "1.4.0-
|
|
25
|
-
"@contember/database": "1.4.0-
|
|
26
|
-
"@contember/dic": "1.4.0-
|
|
27
|
-
"@contember/engine-
|
|
28
|
-
"@contember/
|
|
29
|
-
"@contember/schema": "1.4.0-
|
|
30
|
-
"@contember/schema-migrations": "1.4.0-
|
|
31
|
-
"@contember/schema-utils": "1.4.0-
|
|
23
|
+
"@contember/cli-common": "1.4.0-beta.1",
|
|
24
|
+
"@contember/config-loader": "1.4.0-beta.1",
|
|
25
|
+
"@contember/database": "1.4.0-beta.1",
|
|
26
|
+
"@contember/dic": "1.4.0-beta.1",
|
|
27
|
+
"@contember/engine-content-api": "1.4.0-beta.1",
|
|
28
|
+
"@contember/migrations-client": "1.4.0-beta.1",
|
|
29
|
+
"@contember/schema": "1.4.0-beta.1",
|
|
30
|
+
"@contember/schema-migrations": "1.4.0-beta.1",
|
|
31
|
+
"@contember/schema-utils": "1.4.0-beta.1",
|
|
32
32
|
"@graphql-tools/schema": "^10.0.0",
|
|
33
33
|
"chalk": "^4.1.2",
|
|
34
34
|
"chalk-table": "^1.0.2",
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from '../../utils/migrations/MigrationExecuteHelper'
|
|
8
8
|
import { interactiveResolveApiToken, TenantClient } from '../../utils/tenant'
|
|
9
9
|
import { interactiveResolveInstanceEnvironmentFromInput } from '../../utils/instance'
|
|
10
|
-
import {
|
|
10
|
+
import { SystemClient } from '@contember/migrations-client'
|
|
11
11
|
import { MigrationsContainerFactory } from '../../utils/migrations/MigrationsContainer'
|
|
12
12
|
import { AdminClient, readAdminFiles } from '../../utils/admin'
|
|
13
13
|
import prompts from 'prompts'
|
|
@@ -7,7 +7,7 @@ import { executeMigrations, resolveMigrationStatus } from '../../utils/migration
|
|
|
7
7
|
import prompts from 'prompts'
|
|
8
8
|
import { interactiveResolveApiToken, TenantClient } from '../../utils/tenant'
|
|
9
9
|
import { interactiveResolveInstanceEnvironmentFromInput } from '../../utils/instance'
|
|
10
|
-
import { SystemClient } from '
|
|
10
|
+
import { SystemClient } from '@contember/migrations-client'
|
|
11
11
|
import { loadSchema } from '../../utils/project/loadSchema'
|
|
12
12
|
|
|
13
13
|
type Args = {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import { createMigrationStatusTable } from '../../utils/migrations/migrations'
|
|
10
10
|
import { interactiveResolveInstanceEnvironmentFromInput } from '../../utils/instance'
|
|
11
11
|
import { interactiveResolveApiToken, TenantClient } from '../../utils/tenant'
|
|
12
|
-
import { SystemClient } from '
|
|
12
|
+
import { SystemClient } from '@contember/migrations-client'
|
|
13
13
|
import { MigrationVersionHelper } from '@contember/schema-migrations'
|
|
14
14
|
|
|
15
15
|
type Args = {
|
|
@@ -2,8 +2,9 @@ import { Command, CommandConfiguration, Input, Workspace } from '@contember/cli-
|
|
|
2
2
|
import { MigrationsContainerFactory } from '../../utils/migrations/MigrationsContainer'
|
|
3
3
|
import { interactiveResolveInstanceEnvironmentFromInput } from '../../utils/instance'
|
|
4
4
|
import { interactiveResolveApiToken } from '../../utils/tenant'
|
|
5
|
-
import { SystemClient } from '
|
|
6
|
-
import {
|
|
5
|
+
import { SystemClient } from '@contember/migrations-client'
|
|
6
|
+
import { MigrationState, sortMigrations } from '@contember/migrations-client'
|
|
7
|
+
import { createMigrationStatusTable } from '../../utils/migrations/migrations'
|
|
7
8
|
import chalk from 'chalk'
|
|
8
9
|
import { resolveMigrationStatus } from '../../utils/migrations/MigrationExecuteHelper'
|
|
9
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { interactiveResolveInstanceEnvironmentFromInput } from '../../utils/instance'
|
|
2
2
|
import { interactiveResolveApiToken } from '../../utils/tenant'
|
|
3
|
-
import { SystemClient } from '
|
|
3
|
+
import { SystemClient } from '@contember/migrations-client'
|
|
4
4
|
import { Workspace, Project } from '@contember/cli-common'
|
|
5
5
|
import { Input } from '@contember/cli-common'
|
|
6
6
|
|
|
@@ -13,6 +13,7 @@ import { DocumentNode, GraphQLSchema, printSchema } from 'graphql'
|
|
|
13
13
|
import { mergeSchemas } from '@graphql-tools/schema'
|
|
14
14
|
import { loadSchema } from '../../utils/project/loadSchema'
|
|
15
15
|
import { normalizeSchema } from '@contember/schema-utils'
|
|
16
|
+
import { MigrationsContainerFactory } from '../../utils/migrations/MigrationsContainer'
|
|
16
17
|
|
|
17
18
|
type Args = {
|
|
18
19
|
project?: string
|
|
@@ -22,6 +23,7 @@ type Options = {
|
|
|
22
23
|
role?: string[]
|
|
23
24
|
normalize?: boolean
|
|
24
25
|
format?: 'graphql' | 'introspection' | 'schema'
|
|
26
|
+
source?: 'migrations' | 'definition'
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
export class ProjectPrintSchemaCommand extends Command<Args, Options> {
|
|
@@ -37,6 +39,7 @@ export class ProjectPrintSchemaCommand extends Command<Args, Options> {
|
|
|
37
39
|
configuration.argument('project')
|
|
38
40
|
}
|
|
39
41
|
configuration.option('format').valueRequired().description('graphql|introspection|schema')
|
|
42
|
+
configuration.option('source').valueRequired().description('migrations|definition')
|
|
40
43
|
configuration.option('role').valueArray()
|
|
41
44
|
configuration.option('normalize').valueNone()
|
|
42
45
|
}
|
|
@@ -47,7 +50,12 @@ export class ProjectPrintSchemaCommand extends Command<Args, Options> {
|
|
|
47
50
|
const format = input.getOption('format') || 'graphql'
|
|
48
51
|
|
|
49
52
|
const project = await workspace.projects.getProject(projectName, { fuzzy: true })
|
|
50
|
-
const
|
|
53
|
+
const migrationsDir = await project.migrationsDir
|
|
54
|
+
const container = new MigrationsContainerFactory(migrationsDir).create()
|
|
55
|
+
const schema = input.getOption('source') === 'migrations'
|
|
56
|
+
? await container.schemaVersionBuilder.buildSchema()
|
|
57
|
+
: await loadSchema(project)
|
|
58
|
+
|
|
51
59
|
if (!validateSchemaAndPrintErrors(schema, 'Defined schema is invalid:')) {
|
|
52
60
|
return 1
|
|
53
61
|
}
|