@contember/cli 1.4.0-alpha.3 → 1.4.0-alpha.5
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/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/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":";;;;;;AACA,kDAAyB;AAEzB,8DAAoC;AACpC,gDAA4C;AAC5C,kDAA2D;AAC3D,oEAA6D;AAGtD,MAAM,yBAAyB,GAAG,UACxC,mBAAuC,EACvC,MAAc,EACd,SAAoB,EACpB,OAA+C;IAE/C,MAAM,WAAW,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAChF,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7D,MAAM,GAAG,GAAG,MAAM,CAAC;YAClB,YAAY,EAAE,QAAQ;YACtB,gBAAgB,EAAE,gCAAqB;YACvC,0BAA0B,EAAE,GAAG,EAAE,CAAC,IAAI;SACtC,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,OAAO,EAAE;YACpB,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aAChB;SACD;aAAM;YACN,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAA;YAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,KAAK,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;YAC7E,IAAI,WAAW,CAAC,cAAc,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,eAAK,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;aACvE;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACnB,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;oBACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;iBAChB;qBAAM;oBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;iBAChC;aACD;YACD,OAAO,CAAC,QAAQ,EAAE,CAAA;SAClB;IACF,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAlCY,QAAA,yBAAyB,6BAkCrC;AAEM,MAAM,0BAA0B,GAAG,CAAC,UAAgC,EAAU,EAAE;IACtF,OAAO,IAAA,qBAAU,EAChB;QACC,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;KACxC,EACD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACnB,QAAQ,EAAE,CAAC,KAAK,EAAE;YACjB,KAAK,kCAAc,CAAC,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,eAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,CAAA;YAC/F,KAAK,kCAAc,CAAC,WAAW;gBAC9B,OAAO;oBACN,MAAM,EAAE,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;oBAC7C,SAAS,EAAE,EAAE,CAAC,IAAI;oBAClB,IAAI,EAAE,eAAe,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;iBACpE,CAAA;YACF,KAAK,kCAAc,CAAC,gBAAgB;gBACnC,OAAO;oBACN,MAAM,EAAE,eAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;oBACxC,SAAS,EAAE,EAAE,CAAC,IAAI;oBAClB,IAAI,EAAE,EAAE,CAAC,YAAY;iBACrB,CAAA;YACF,KAAK,kCAAc,CAAC,aAAa;gBAChC,OAAO;oBACN,MAAM,EAAE,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC;oBAChD,SAAS,EAAE,EAAE,CAAC,IAAI;oBAClB,IAAI,EAAE,qCAAqC;iBAC3C,CAAA;YACF,KAAK,kCAAc,CAAC,gBAAgB;gBACnC,OAAO,EAAE,MAAM,EAAE,eAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,CAAA;YAC/F;gBACC,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAA;SAChB;IACF,CAAC,CAAC,CACF,CAAA;AACF,CAAC,CAAA;AAlCY,QAAA,0BAA0B,8BAkCtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/cli",
|
|
3
|
-
"version": "1.4.0-alpha.
|
|
3
|
+
"version": "1.4.0-alpha.5",
|
|
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-alpha.
|
|
24
|
-
"@contember/config-loader": "1.4.0-alpha.
|
|
25
|
-
"@contember/database": "1.4.0-alpha.
|
|
26
|
-
"@contember/dic": "1.4.0-alpha.
|
|
27
|
-
"@contember/engine-
|
|
28
|
-
"@contember/
|
|
29
|
-
"@contember/schema": "1.4.0-alpha.
|
|
30
|
-
"@contember/schema-migrations": "1.4.0-alpha.
|
|
31
|
-
"@contember/schema-utils": "1.4.0-alpha.
|
|
23
|
+
"@contember/cli-common": "1.4.0-alpha.5",
|
|
24
|
+
"@contember/config-loader": "1.4.0-alpha.5",
|
|
25
|
+
"@contember/database": "1.4.0-alpha.5",
|
|
26
|
+
"@contember/dic": "1.4.0-alpha.5",
|
|
27
|
+
"@contember/engine-content-api": "1.4.0-alpha.5",
|
|
28
|
+
"@contember/migrations-client": "1.4.0-alpha.5",
|
|
29
|
+
"@contember/schema": "1.4.0-alpha.5",
|
|
30
|
+
"@contember/schema-migrations": "1.4.0-alpha.5",
|
|
31
|
+
"@contember/schema-utils": "1.4.0-alpha.5",
|
|
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
|
|
package/src/tsconfig.json
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
{ "path": "../../config-loader/src" },
|
|
13
13
|
{ "path": "../../database/src" },
|
|
14
14
|
{ "path": "../../dic/src" },
|
|
15
|
-
{ "path": "../../engine-common/src" },
|
|
16
15
|
{ "path": "../../engine-content-api/src" },
|
|
17
16
|
{ "path": "../../schema/src" },
|
|
17
|
+
{ "path": "../../migrations-client/src" },
|
|
18
18
|
{ "path": "../../schema-migrations/src" },
|
|
19
19
|
{ "path": "../../schema-utils/src" }
|
|
20
20
|
]
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Input, Project, Workspace } from '@contember/cli-common'
|
|
2
2
|
import { MigrationsContainerFactory } from './MigrationsContainer'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import {
|
|
4
|
+
MigrationCreator,
|
|
5
|
+
MigrationDescriber,
|
|
6
|
+
MigrationFilesManager,
|
|
7
|
+
MigrationsResolver,
|
|
8
|
+
SchemaMigrator,
|
|
9
|
+
SchemaVersionBuilder,
|
|
10
|
+
} from '@contember/migrations-client'
|
|
8
11
|
|
|
9
12
|
type Args = {
|
|
10
13
|
project?: string
|