@memberjunction/cli 3.3.0 ā 4.0.0
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/README.md +28 -0
- package/bin/dev.cmd +2 -2
- package/bin/dev.js +5 -6
- package/bin/run.cmd +3 -3
- package/bin/run.js +14 -5
- package/dist/commands/ai/actions/list.d.ts +1 -0
- package/dist/commands/ai/actions/list.d.ts.map +1 -0
- package/dist/commands/ai/actions/list.js +14 -19
- package/dist/commands/ai/actions/list.js.map +1 -0
- package/dist/commands/ai/actions/run.d.ts +2 -1
- package/dist/commands/ai/actions/run.d.ts.map +1 -0
- package/dist/commands/ai/actions/run.js +24 -29
- package/dist/commands/ai/actions/run.js.map +1 -0
- package/dist/commands/ai/agents/list.d.ts +1 -0
- package/dist/commands/ai/agents/list.d.ts.map +1 -0
- package/dist/commands/ai/agents/list.js +14 -19
- package/dist/commands/ai/agents/list.js.map +1 -0
- package/dist/commands/ai/agents/run.d.ts +2 -1
- package/dist/commands/ai/agents/run.d.ts.map +1 -0
- package/dist/commands/ai/agents/run.js +20 -25
- package/dist/commands/ai/agents/run.js.map +1 -0
- package/dist/commands/ai/audit/agent-run.d.ts +7 -6
- package/dist/commands/ai/audit/agent-run.d.ts.map +1 -0
- package/dist/commands/ai/audit/agent-run.js +35 -63
- package/dist/commands/ai/audit/agent-run.js.map +1 -0
- package/dist/commands/ai/audit/index.d.ts +1 -0
- package/dist/commands/ai/audit/index.d.ts.map +1 -0
- package/dist/commands/ai/audit/index.js +5 -7
- package/dist/commands/ai/audit/index.js.map +1 -0
- package/dist/commands/ai/index.d.ts +1 -0
- package/dist/commands/ai/index.d.ts.map +1 -0
- package/dist/commands/ai/index.js +5 -7
- package/dist/commands/ai/index.js.map +1 -0
- package/dist/commands/ai/prompts/list.d.ts +1 -0
- package/dist/commands/ai/prompts/list.d.ts.map +1 -0
- package/dist/commands/ai/prompts/list.js +18 -23
- package/dist/commands/ai/prompts/list.js.map +1 -0
- package/dist/commands/ai/prompts/run.d.ts +6 -5
- package/dist/commands/ai/prompts/run.d.ts.map +1 -0
- package/dist/commands/ai/prompts/run.js +22 -27
- package/dist/commands/ai/prompts/run.js.map +1 -0
- package/dist/commands/bump/index.d.ts +2 -1
- package/dist/commands/bump/index.d.ts.map +1 -0
- package/dist/commands/bump/index.js +24 -52
- package/dist/commands/bump/index.js.map +1 -0
- package/dist/commands/clean/index.d.ts +3 -2
- package/dist/commands/clean/index.d.ts.map +1 -0
- package/dist/commands/clean/index.js +16 -22
- package/dist/commands/clean/index.js.map +1 -0
- package/dist/commands/codegen/index.d.ts +3 -2
- package/dist/commands/codegen/index.d.ts.map +1 -0
- package/dist/commands/codegen/index.js +14 -17
- package/dist/commands/codegen/index.js.map +1 -0
- package/dist/commands/codegen/manifest.d.ts +15 -0
- package/dist/commands/codegen/manifest.d.ts.map +1 -0
- package/dist/commands/codegen/manifest.js +65 -0
- package/dist/commands/codegen/manifest.js.map +1 -0
- package/dist/commands/dbdoc/analyze.d.ts +2 -1
- package/dist/commands/dbdoc/analyze.d.ts.map +1 -0
- package/dist/commands/dbdoc/analyze.js +11 -36
- package/dist/commands/dbdoc/analyze.js.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.d.ts +2 -1
- package/dist/commands/dbdoc/export-sample-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.js +19 -44
- package/dist/commands/dbdoc/export-sample-queries.js.map +1 -0
- package/dist/commands/dbdoc/export.d.ts +3 -2
- package/dist/commands/dbdoc/export.d.ts.map +1 -0
- package/dist/commands/dbdoc/export.js +20 -45
- package/dist/commands/dbdoc/export.js.map +1 -0
- package/dist/commands/dbdoc/generate-queries.d.ts +4 -3
- package/dist/commands/dbdoc/generate-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/generate-queries.js +14 -39
- package/dist/commands/dbdoc/generate-queries.js.map +1 -0
- package/dist/commands/dbdoc/index.d.ts +1 -0
- package/dist/commands/dbdoc/index.d.ts.map +1 -0
- package/dist/commands/dbdoc/index.js +5 -7
- package/dist/commands/dbdoc/index.js.map +1 -0
- package/dist/commands/dbdoc/init.d.ts +1 -0
- package/dist/commands/dbdoc/init.d.ts.map +1 -0
- package/dist/commands/dbdoc/init.js +7 -32
- package/dist/commands/dbdoc/init.js.map +1 -0
- package/dist/commands/dbdoc/reset.d.ts +1 -0
- package/dist/commands/dbdoc/reset.d.ts.map +1 -0
- package/dist/commands/dbdoc/reset.js +10 -35
- package/dist/commands/dbdoc/reset.js.map +1 -0
- package/dist/commands/dbdoc/review.d.ts +10 -0
- package/dist/commands/dbdoc/review.js +81 -0
- package/dist/commands/dbdoc/status.d.ts +2 -1
- package/dist/commands/dbdoc/status.d.ts.map +1 -0
- package/dist/commands/dbdoc/status.js +10 -35
- package/dist/commands/dbdoc/status.js.map +1 -0
- package/dist/commands/install/index.d.ts +76 -75
- package/dist/commands/install/index.d.ts.map +1 -0
- package/dist/commands/install/index.js +81 -111
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/migrate/index.d.ts +4 -1
- package/dist/commands/migrate/index.d.ts.map +1 -0
- package/dist/commands/migrate/index.js +83 -73
- package/dist/commands/migrate/index.js.map +1 -0
- package/dist/commands/querygen/export.d.ts +1 -0
- package/dist/commands/querygen/export.d.ts.map +1 -0
- package/dist/commands/querygen/export.js +15 -17
- package/dist/commands/querygen/export.js.map +1 -0
- package/dist/commands/querygen/generate.d.ts +8 -7
- package/dist/commands/querygen/generate.d.ts.map +1 -0
- package/dist/commands/querygen/generate.js +28 -30
- package/dist/commands/querygen/generate.js.map +1 -0
- package/dist/commands/querygen/validate.d.ts +1 -0
- package/dist/commands/querygen/validate.d.ts.map +1 -0
- package/dist/commands/querygen/validate.js +15 -17
- package/dist/commands/querygen/validate.js.map +1 -0
- package/dist/commands/sync/file-reset.d.ts +3 -2
- package/dist/commands/sync/file-reset.d.ts.map +1 -0
- package/dist/commands/sync/file-reset.js +36 -64
- package/dist/commands/sync/file-reset.js.map +1 -0
- package/dist/commands/sync/init.d.ts +1 -0
- package/dist/commands/sync/init.d.ts.map +1 -0
- package/dist/commands/sync/init.js +16 -21
- package/dist/commands/sync/init.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +7 -6
- package/dist/commands/sync/pull.d.ts.map +1 -0
- package/dist/commands/sync/pull.js +46 -51
- package/dist/commands/sync/pull.js.map +1 -0
- package/dist/commands/sync/push.d.ts +4 -3
- package/dist/commands/sync/push.d.ts.map +1 -0
- package/dist/commands/sync/push.js +44 -49
- package/dist/commands/sync/push.js.map +1 -0
- package/dist/commands/sync/status.d.ts +4 -3
- package/dist/commands/sync/status.d.ts.map +1 -0
- package/dist/commands/sync/status.js +28 -33
- package/dist/commands/sync/status.js.map +1 -0
- package/dist/commands/sync/validate.d.ts +3 -2
- package/dist/commands/sync/validate.d.ts.map +1 -0
- package/dist/commands/sync/validate.js +31 -59
- package/dist/commands/sync/validate.js.map +1 -0
- package/dist/commands/sync/watch.d.ts +3 -2
- package/dist/commands/sync/watch.d.ts.map +1 -0
- package/dist/commands/sync/watch.js +34 -63
- package/dist/commands/sync/watch.js.map +1 -0
- package/dist/commands/test/compare.d.ts +6 -5
- package/dist/commands/test/compare.d.ts.map +1 -0
- package/dist/commands/test/compare.js +20 -22
- package/dist/commands/test/compare.js.map +1 -0
- package/dist/commands/test/history.d.ts +6 -5
- package/dist/commands/test/history.d.ts.map +1 -0
- package/dist/commands/test/history.js +17 -19
- package/dist/commands/test/history.js.map +1 -0
- package/dist/commands/test/index.d.ts +1 -0
- package/dist/commands/test/index.d.ts.map +1 -0
- package/dist/commands/test/index.js +6 -8
- package/dist/commands/test/index.js.map +1 -0
- package/dist/commands/test/list.d.ts +5 -4
- package/dist/commands/test/list.d.ts.map +1 -0
- package/dist/commands/test/list.js +18 -20
- package/dist/commands/test/list.js.map +1 -0
- package/dist/commands/test/run.d.ts +5 -4
- package/dist/commands/test/run.d.ts.map +1 -0
- package/dist/commands/test/run.js +19 -21
- package/dist/commands/test/run.js.map +1 -0
- package/dist/commands/test/suite.d.ts +4 -3
- package/dist/commands/test/suite.d.ts.map +1 -0
- package/dist/commands/test/suite.js +17 -19
- package/dist/commands/test/suite.js.map +1 -0
- package/dist/commands/test/validate.d.ts +4 -3
- package/dist/commands/test/validate.d.ts.map +1 -0
- package/dist/commands/test/validate.js +19 -21
- package/dist/commands/test/validate.js.map +1 -0
- package/dist/config.d.ts +76 -38
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +108 -60
- package/dist/config.js.map +1 -0
- package/dist/hooks/init.d.ts +1 -0
- package/dist/hooks/init.d.ts.map +1 -0
- package/dist/hooks/init.js +5 -29
- package/dist/hooks/init.js.map +1 -0
- package/dist/hooks/prerun.d.ts +1 -0
- package/dist/hooks/prerun.d.ts.map +1 -0
- package/dist/hooks/prerun.js +4 -8
- package/dist/hooks/prerun.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -0
- package/package.json +32 -30
- package/oclif.manifest.json +0 -2504
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKtE,OAAO,EAAY,CAAC,EAAE,MAAM,KAAK,CAAC;AAUlC,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhB,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAA4B;IAE9C,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;MAEV;IAEF,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,UAAU,EAAG,MAAM,CAAC;IAEd,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6GpB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;IAwH1B;;;OAGG;IACH,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAW5B,gBAAgB;IAOhB;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,SAAI;IAkCjC;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAoCxF,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAiBxC;;;;;;OAMG;IACG,wBAAwB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAiDxG"}
|
|
@@ -1,40 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const prompts_1 = require("@inquirer/prompts");
|
|
30
|
-
const dotenv = __importStar(require("dotenv"));
|
|
31
|
-
const recast = __importStar(require("recast"));
|
|
32
|
-
const core_1 = require("@oclif/core");
|
|
33
|
-
const fs = __importStar(require("fs-extra"));
|
|
34
|
-
const node_child_process_1 = require("node:child_process");
|
|
35
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
36
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
37
|
-
const zod_1 = require("zod");
|
|
1
|
+
import { confirm, input, select } from '@inquirer/prompts';
|
|
2
|
+
import * as dotenv from 'dotenv';
|
|
3
|
+
import * as recast from 'recast';
|
|
4
|
+
import { Command, Flags } from '@oclif/core';
|
|
5
|
+
import * as fs from 'fs-extra';
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
import os from 'node:os';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { ZodError, z } from 'zod';
|
|
38
10
|
// Directories are relative to execution cwd
|
|
39
11
|
const GENERATED_ENTITIES_DIR = 'GeneratedEntities';
|
|
40
12
|
const SQL_SCRIPTS_DIR = 'SQL Scripts';
|
|
@@ -42,46 +14,44 @@ const GENERATED_DIR = 'generated';
|
|
|
42
14
|
const MJ_BASE_DIR = 'MJ_BASE';
|
|
43
15
|
const MJAPI_DIR = 'MJAPI';
|
|
44
16
|
const MJEXPLORER_DIR = 'MJExplorer';
|
|
45
|
-
const configSchema =
|
|
46
|
-
dbUrl:
|
|
47
|
-
dbInstance:
|
|
48
|
-
dbTrustServerCertificate:
|
|
17
|
+
const configSchema = z.object({
|
|
18
|
+
dbUrl: z.string().min(1),
|
|
19
|
+
dbInstance: z.string(),
|
|
20
|
+
dbTrustServerCertificate: z.coerce
|
|
49
21
|
.boolean()
|
|
50
22
|
.default(false)
|
|
51
23
|
.transform((v) => (v ? 'Y' : 'N')),
|
|
52
|
-
dbDatabase:
|
|
53
|
-
dbPort:
|
|
54
|
-
codeGenLogin:
|
|
55
|
-
codeGenPwD:
|
|
56
|
-
mjAPILogin:
|
|
57
|
-
mjAPIPwD:
|
|
58
|
-
graphQLPort:
|
|
59
|
-
authType:
|
|
60
|
-
msalWebClientId:
|
|
61
|
-
msalTenantId:
|
|
62
|
-
auth0ClientId:
|
|
63
|
-
auth0ClientSecret:
|
|
64
|
-
auth0Domain:
|
|
65
|
-
createNewUser:
|
|
66
|
-
userEmail:
|
|
67
|
-
userFirstName:
|
|
68
|
-
userLastName:
|
|
69
|
-
userName:
|
|
70
|
-
openAIAPIKey:
|
|
71
|
-
anthropicAPIKey:
|
|
72
|
-
mistralAPIKey:
|
|
24
|
+
dbDatabase: z.string().min(1),
|
|
25
|
+
dbPort: z.number({ coerce: true }).int().positive(),
|
|
26
|
+
codeGenLogin: z.string(),
|
|
27
|
+
codeGenPwD: z.string(),
|
|
28
|
+
mjAPILogin: z.string(),
|
|
29
|
+
mjAPIPwD: z.string(),
|
|
30
|
+
graphQLPort: z.number({ coerce: true }).int().positive().optional(),
|
|
31
|
+
authType: z.enum(['MSAL', 'AUTH0', 'BOTH']),
|
|
32
|
+
msalWebClientId: z.string().optional(),
|
|
33
|
+
msalTenantId: z.string().optional(),
|
|
34
|
+
auth0ClientId: z.string().optional(),
|
|
35
|
+
auth0ClientSecret: z.string().optional(),
|
|
36
|
+
auth0Domain: z.string().optional(),
|
|
37
|
+
createNewUser: z.coerce.boolean().optional(),
|
|
38
|
+
userEmail: z.string().email().or(z.literal('')).optional().default(''),
|
|
39
|
+
userFirstName: z.string().optional(),
|
|
40
|
+
userLastName: z.string().optional(),
|
|
41
|
+
userName: z.string().optional(),
|
|
42
|
+
openAIAPIKey: z.string().optional(),
|
|
43
|
+
anthropicAPIKey: z.string().optional(),
|
|
44
|
+
mistralAPIKey: z.string().optional(),
|
|
73
45
|
});
|
|
74
|
-
class Install extends
|
|
75
|
-
static description = 'Install MemberJunction';
|
|
76
|
-
static examples = [
|
|
46
|
+
export default class Install extends Command {
|
|
47
|
+
static { this.description = 'Install MemberJunction'; }
|
|
48
|
+
static { this.examples = [
|
|
77
49
|
`<%= config.bin %> <%= command.id %>
|
|
78
50
|
`,
|
|
79
|
-
];
|
|
80
|
-
static flags = {
|
|
81
|
-
verbose:
|
|
82
|
-
};
|
|
83
|
-
flags;
|
|
84
|
-
userConfig;
|
|
51
|
+
]; }
|
|
52
|
+
static { this.flags = {
|
|
53
|
+
verbose: Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
|
|
54
|
+
}; }
|
|
85
55
|
async run() {
|
|
86
56
|
const parsed = await this.parse(Install);
|
|
87
57
|
this.flags = parsed.flags;
|
|
@@ -98,7 +68,7 @@ class Install extends core_1.Command {
|
|
|
98
68
|
//*******************************************************************
|
|
99
69
|
this.log('\nBootstrapping GeneratedEntities...');
|
|
100
70
|
this.log('Running npm install...');
|
|
101
|
-
|
|
71
|
+
execSync('npm install', { stdio: 'inherit', cwd: GENERATED_ENTITIES_DIR });
|
|
102
72
|
//*******************************************************************
|
|
103
73
|
// Process Config
|
|
104
74
|
//*******************************************************************
|
|
@@ -154,12 +124,12 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
154
124
|
//*******************************************************************
|
|
155
125
|
this.log('\n\nBootstrapping MJAPI...');
|
|
156
126
|
this.log(' Running npm link for generated code...');
|
|
157
|
-
|
|
127
|
+
execSync('npm link ../GeneratedEntities ../GeneratedActions', { stdio: 'inherit', cwd: MJAPI_DIR });
|
|
158
128
|
this.log('Running CodeGen...');
|
|
159
129
|
this.renameFolderToMJ_BASE(this.userConfig.dbDatabase);
|
|
160
130
|
// next, run CodeGen
|
|
161
131
|
// We do not manually run the compilation for GeneratedEntities because CodeGen handles that, but notice above that we did npm install for GeneratedEntities otherwise when CodeGen attempts to compile it, it will fail.
|
|
162
|
-
dotenv.config();
|
|
132
|
+
dotenv.config({ quiet: true });
|
|
163
133
|
this.config.runCommand('codegen');
|
|
164
134
|
// Process MJExplorer
|
|
165
135
|
this.log('\nProcessing MJExplorer...');
|
|
@@ -172,10 +142,10 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
172
142
|
AUTH0_DOMAIN: this.userConfig.auth0Domain,
|
|
173
143
|
AUTH0_CLIENTID: this.userConfig.auth0ClientId,
|
|
174
144
|
};
|
|
175
|
-
await this.updateEnvironmentFiles(
|
|
145
|
+
await this.updateEnvironmentFiles(path.join(MJEXPLORER_DIR, 'src', 'environments'), config);
|
|
176
146
|
// keep on going with MJ Explorer - do the rest of the stuff
|
|
177
147
|
this.log(' Running npm link for GeneratedEntities...');
|
|
178
|
-
|
|
148
|
+
execSync('npm link ../GeneratedEntities', { stdio: 'inherit', cwd: MJEXPLORER_DIR });
|
|
179
149
|
this.log('Installation complete!');
|
|
180
150
|
}
|
|
181
151
|
async getUserConfiguration() {
|
|
@@ -185,50 +155,50 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
185
155
|
userConfig = configSchema.parse(configObject);
|
|
186
156
|
}
|
|
187
157
|
catch (e) {
|
|
188
|
-
if (e instanceof
|
|
189
|
-
this.log(`Invalid config file found at '${
|
|
158
|
+
if (e instanceof ZodError) {
|
|
159
|
+
this.log(`Invalid config file found at '${path.join(fs.realpathSync('.'), 'install.config.json')}'${this.flags.verbose ? '' : ', retry with --verbose for details'}`);
|
|
190
160
|
if (this.flags.verbose) {
|
|
191
161
|
console.table(e.issues);
|
|
192
162
|
}
|
|
193
163
|
}
|
|
194
164
|
else {
|
|
195
|
-
this.log(`No config file found at '${
|
|
165
|
+
this.log(`No config file found at '${path.join(fs.realpathSync('.'), 'install.config.json')}'`);
|
|
196
166
|
}
|
|
197
167
|
}
|
|
198
168
|
if (!userConfig) {
|
|
199
169
|
this.log('\n>>> Please answer the following questions to setup the .env files for CodeGen. After this process you can manually edit the .env file as desired.');
|
|
200
|
-
const dbUrl = await
|
|
170
|
+
const dbUrl = await input({
|
|
201
171
|
message: 'Enter the database server hostname:',
|
|
202
172
|
validate: (v) => configSchema.shape.dbDatabase.safeParse(v).success,
|
|
203
173
|
});
|
|
204
|
-
const dbInstance = await
|
|
174
|
+
const dbInstance = await input({
|
|
205
175
|
message: 'If you are using a named instance on that server, if so, enter the name here, if not leave blank:',
|
|
206
176
|
});
|
|
207
|
-
const dbTrustServerCertificate = (await
|
|
177
|
+
const dbTrustServerCertificate = (await confirm({
|
|
208
178
|
message: 'Does the database server use a self-signed certificate? If you are using a local instance, enter Y:',
|
|
209
179
|
}))
|
|
210
180
|
? 'Y'
|
|
211
181
|
: 'N';
|
|
212
|
-
const dbDatabase = await
|
|
182
|
+
const dbDatabase = await input({
|
|
213
183
|
message: 'Enter the database name on that server:',
|
|
214
184
|
validate: (v) => configSchema.shape.dbDatabase.safeParse(v).success,
|
|
215
185
|
});
|
|
216
|
-
const dbPort = await
|
|
186
|
+
const dbPort = await input({
|
|
217
187
|
message: 'Enter the port the database server listens on',
|
|
218
188
|
validate: (v) => configSchema.shape.dbPort.safeParse(v).success,
|
|
219
189
|
default: '1433',
|
|
220
190
|
});
|
|
221
|
-
const codeGenLogin = await
|
|
222
|
-
const codeGenPwD = await
|
|
191
|
+
const codeGenLogin = await input({ message: 'Enter the database login for CodeGen:' });
|
|
192
|
+
const codeGenPwD = await input({ message: 'Enter the database password for CodeGen:' });
|
|
223
193
|
this.log('\n>>> Please answer the following questions to setup the .env files for MJAPI. After this process you can manually edit the .env file in CodeGen as desired.');
|
|
224
|
-
const mjAPILogin = await
|
|
225
|
-
const mjAPIPwD = await
|
|
226
|
-
const graphQLPort = await
|
|
194
|
+
const mjAPILogin = await input({ message: 'Enter the database login for MJAPI:' });
|
|
195
|
+
const mjAPIPwD = await input({ message: 'Enter the database password for MJAPI:' });
|
|
196
|
+
const graphQLPort = await input({
|
|
227
197
|
message: 'Enter the port to use for the GraphQL API',
|
|
228
198
|
validate: (v) => configSchema.shape.graphQLPort.safeParse(v).success,
|
|
229
199
|
default: '4000',
|
|
230
200
|
});
|
|
231
|
-
const authType = await
|
|
201
|
+
const authType = await select({
|
|
232
202
|
message: 'Will you be using Microsoft Entra (formerly Azure AD), Auth0, or both for authentication services for MJAPI:',
|
|
233
203
|
choices: [
|
|
234
204
|
{ name: 'Microsoft Entra (MSAL)', value: 'MSAL' },
|
|
@@ -236,26 +206,26 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
236
206
|
{ name: 'Both', value: 'BOTH' },
|
|
237
207
|
],
|
|
238
208
|
});
|
|
239
|
-
const msalTenantId = ['BOTH', 'MSAL'].includes(authType) ? await
|
|
240
|
-
const msalWebClientId = ['BOTH', 'MSAL'].includes(authType) ? await
|
|
241
|
-
const auth0ClientId = ['BOTH', 'AUTH0'].includes(authType) ? await
|
|
242
|
-
const auth0ClientSecret = ['BOTH', 'AUTH0'].includes(authType) ? await
|
|
243
|
-
const auth0Domain = ['BOTH', 'AUTH0'].includes(authType) ? await
|
|
244
|
-
const createNewUser = await
|
|
209
|
+
const msalTenantId = ['BOTH', 'MSAL'].includes(authType) ? await input({ message: 'Enter the web client ID for Entra:' }) : '';
|
|
210
|
+
const msalWebClientId = ['BOTH', 'MSAL'].includes(authType) ? await input({ message: 'Enter the tenant ID for Entra:' }) : '';
|
|
211
|
+
const auth0ClientId = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the client ID for Auth0:' }) : '';
|
|
212
|
+
const auth0ClientSecret = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the client secret for Auth0:' }) : '';
|
|
213
|
+
const auth0Domain = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the domain for Auth0:' }) : '';
|
|
214
|
+
const createNewUser = await confirm({ message: 'Do you want to create a new user in the database? (Y/N):' });
|
|
245
215
|
const userEmail = createNewUser
|
|
246
|
-
? await
|
|
216
|
+
? await input({
|
|
247
217
|
message: 'Enter the new user email',
|
|
248
218
|
validate: (v) => configSchema.shape.userEmail.safeParse(v).success,
|
|
249
219
|
})
|
|
250
220
|
: '';
|
|
251
|
-
const userFirstName = createNewUser ? await
|
|
252
|
-
const userLastName = createNewUser ? await
|
|
221
|
+
const userFirstName = createNewUser ? await input({ message: 'Enter the new user first name:' }) : '';
|
|
222
|
+
const userLastName = createNewUser ? await input({ message: 'Enter the new user last name::' }) : '';
|
|
253
223
|
const userName = createNewUser
|
|
254
|
-
? await
|
|
224
|
+
? await input({ message: 'Enter the new user name (leave blank to use email):', default: userEmail })
|
|
255
225
|
: '';
|
|
256
|
-
const openAIAPIKey = await
|
|
257
|
-
const anthropicAPIKey = await
|
|
258
|
-
const mistralAPIKey = await
|
|
226
|
+
const openAIAPIKey = await input({ message: 'Enter the OpenAI API Key (leave blank if not using):' });
|
|
227
|
+
const anthropicAPIKey = await input({ message: 'Enter the Anthropic API Key (leave blank if not using):' });
|
|
228
|
+
const mistralAPIKey = await input({ message: 'Enter the Mistral API Key (leave blank if not using):' });
|
|
259
229
|
userConfig = configSchema.parse({
|
|
260
230
|
dbUrl,
|
|
261
231
|
dbInstance,
|
|
@@ -292,7 +262,7 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
292
262
|
verifyDirs(...dirs) {
|
|
293
263
|
dirs.forEach((dir) => {
|
|
294
264
|
if (!fs.existsSync(dir)) {
|
|
295
|
-
this.error(`Unable to locate required package at '${
|
|
265
|
+
this.error(`Unable to locate required package at '${path.join(fs.realpathSync('.'), dir)}'`, {
|
|
296
266
|
exit: 1,
|
|
297
267
|
suggestions: ['Run the install from the same directory as the extracted MemberJunction distribution'],
|
|
298
268
|
});
|
|
@@ -317,17 +287,17 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
317
287
|
const GBToBytes = 1024 * 1024 * 1024;
|
|
318
288
|
const requiredSpace = numGB * GBToBytes;
|
|
319
289
|
let freeSpace;
|
|
320
|
-
if (
|
|
290
|
+
if (os.platform() === 'win32') {
|
|
321
291
|
// For Windows, check the C: drive
|
|
322
292
|
const command = `wmic LogicalDisk where DeviceID="C:" get FreeSpace`;
|
|
323
|
-
const output =
|
|
293
|
+
const output = execSync(command).toString();
|
|
324
294
|
const lines = output.trim().split('\n');
|
|
325
295
|
freeSpace = parseInt(lines[1].trim());
|
|
326
296
|
}
|
|
327
297
|
else {
|
|
328
298
|
// For POSIX systems, check the root directory
|
|
329
299
|
const command = `df -k / | tail -1 | awk '{ print $4; }'`;
|
|
330
|
-
freeSpace = parseInt(
|
|
300
|
+
freeSpace = parseInt(execSync(command).toString().trim()) * 1024;
|
|
331
301
|
}
|
|
332
302
|
if (freeSpace >= requiredSpace) {
|
|
333
303
|
this.log(` Sufficient disk space available: ${Math.round(freeSpace / GBToBytes)} GB`);
|
|
@@ -362,7 +332,7 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
362
332
|
if (this.flags.verbose) {
|
|
363
333
|
this.log(`Updating ${file}`);
|
|
364
334
|
}
|
|
365
|
-
const filePath =
|
|
335
|
+
const filePath = path.join(dirPath, file);
|
|
366
336
|
const data = await fs.readFile(filePath, 'utf8');
|
|
367
337
|
// Replace the values in the file.
|
|
368
338
|
let updatedData = data;
|
|
@@ -382,8 +352,8 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
382
352
|
}
|
|
383
353
|
renameFolderToMJ_BASE(dbDatabase) {
|
|
384
354
|
// rename the MJ_BASE set of SQL Scripts to our new dbname
|
|
385
|
-
const oldFolderPath =
|
|
386
|
-
const newFolderPath =
|
|
355
|
+
const oldFolderPath = path.join(SQL_SCRIPTS_DIR, GENERATED_DIR, MJ_BASE_DIR);
|
|
356
|
+
const newFolderPath = path.join(SQL_SCRIPTS_DIR, GENERATED_DIR, dbDatabase); // Assuming dbDatabase holds the new name
|
|
387
357
|
if (!fs.existsSync(oldFolderPath)) {
|
|
388
358
|
this.warn(`SQL scripts not found at '${oldFolderPath}', skipping rename`);
|
|
389
359
|
return;
|
|
@@ -445,4 +415,4 @@ ASK_SKIP_ORGANIZATION_ID = 1
|
|
|
445
415
|
}
|
|
446
416
|
}
|
|
447
417
|
}
|
|
448
|
-
|
|
418
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,11 @@ export default class Migrate extends Command {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
|
-
tag: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
7
|
+
tag: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
schema: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
10
|
};
|
|
9
11
|
run(): Promise<void>;
|
|
10
12
|
private analyzeFlywayError;
|
|
11
13
|
}
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAQ7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAwI1B,OAAO,CAAC,kBAAkB;CAgH3B"}
|
|
@@ -1,37 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
static description = 'Migrate MemberJunction database to latest version';
|
|
12
|
-
static examples = [
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import { Flyway } from 'node-flyway';
|
|
3
|
+
import ora from 'ora-classic';
|
|
4
|
+
import { spawnSync } from 'child_process';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import os from 'os';
|
|
7
|
+
import { getValidatedConfig, getFlywayConfig } from '../../config.js';
|
|
8
|
+
export default class Migrate extends Command {
|
|
9
|
+
static { this.description = 'Migrate MemberJunction database to latest version'; }
|
|
10
|
+
static { this.examples = [
|
|
13
11
|
`<%= config.bin %> <%= command.id %>
|
|
14
12
|
`,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
13
|
+
`<%= config.bin %> <%= command.id %> --schema __BCSaaS --dir ./migrations/v1
|
|
14
|
+
`,
|
|
15
|
+
`<%= config.bin %> <%= command.id %> --schema __BCSaaS --tag v1.0.0
|
|
16
|
+
`,
|
|
17
|
+
]; }
|
|
18
|
+
static { this.flags = {
|
|
19
|
+
verbose: Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
|
|
20
|
+
tag: Flags.string({ char: 't', description: 'Version tag to use for running remote migrations' }),
|
|
21
|
+
schema: Flags.string({ char: 's', description: 'Target schema (overrides coreSchema from config)' }),
|
|
22
|
+
dir: Flags.string({ description: 'Migration source directory (overrides migrationsLocation from config)' }),
|
|
23
|
+
}; }
|
|
20
24
|
async run() {
|
|
21
25
|
const { flags } = await this.parse(Migrate);
|
|
22
|
-
const config =
|
|
23
|
-
const
|
|
24
|
-
const
|
|
26
|
+
const config = getValidatedConfig();
|
|
27
|
+
const targetSchema = flags.schema || config.coreSchema;
|
|
28
|
+
const flywayConfig = await getFlywayConfig(config, flags.tag, flags.schema, flags.dir);
|
|
29
|
+
const flyway = new Flyway(flywayConfig);
|
|
25
30
|
if (flags.verbose) {
|
|
26
31
|
this.log(`Connecting to ${flywayConfig.url}`);
|
|
27
32
|
this.log(`Database Connection: ${config.dbHost}, ${config.dbDatabase}, User: ${flywayConfig.user}`);
|
|
28
|
-
this.log(`Migrating ${
|
|
33
|
+
this.log(`Migrating ${targetSchema} schema using migrations from:\n\t- ${flywayConfig.migrationLocations.join('\n\t- ')}\n`);
|
|
29
34
|
this.log(`Flyway config settings: baselineVersion: ${config.baselineVersion}, baselineMigrate: ${config.baselineOnMigrate}\n`);
|
|
30
35
|
}
|
|
31
36
|
if (flags.tag) {
|
|
32
37
|
this.log(`Migrating to ${flags.tag}`);
|
|
33
38
|
}
|
|
34
|
-
const spinner = (
|
|
39
|
+
const spinner = ora('Running migrations...');
|
|
35
40
|
spinner.start();
|
|
36
41
|
const result = await flyway.migrate();
|
|
37
42
|
const isParseError = result.error?.errorCode === 'UNABLE_TO_PARSE_RESPONSE';
|
|
@@ -43,32 +48,37 @@ class Migrate extends core_1.Command {
|
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
else if (isParseError) {
|
|
46
|
-
// Parse error - could be SQL error or connection issue
|
|
47
|
-
// Run Flyway CLI directly to
|
|
48
|
-
spinner.
|
|
49
|
-
this.logToStderr('\nā Migration failed - unable to parse Flyway response.');
|
|
50
|
-
this.logToStderr(`Execution time: ${result.additionalDetails.executionTime / 1000}s\n`);
|
|
51
|
-
this.logToStderr('š Running diagnostic to identify the actual error...');
|
|
52
|
-
const dbInfo = `${config.dbHost}:${config.dbPort}/${config.dbDatabase}`;
|
|
53
|
-
this.logToStderr(` Database: ${dbInfo}`);
|
|
54
|
-
this.logToStderr(` User: ${config.codeGenLogin}\n`);
|
|
51
|
+
// Parse error - could be SQL error or connection issue, or just a node-flyway bug
|
|
52
|
+
// Run Flyway CLI directly to determine if migration actually succeeded
|
|
53
|
+
spinner.text = 'Verifying migration status...';
|
|
55
54
|
try {
|
|
56
|
-
const { spawnSync } = require('child_process');
|
|
57
|
-
const path = require('path');
|
|
58
|
-
const os = require('os');
|
|
59
55
|
// Construct Flyway executable path
|
|
60
56
|
const flywayDir = result.additionalDetails.flywayCli.location;
|
|
61
57
|
const flywayExeName = os.platform() === 'win32' ? 'flyway.cmd' : 'flyway';
|
|
62
58
|
const flywayExePath = path.join(flywayDir, flywayExeName);
|
|
63
59
|
// Use spawnSync to avoid shell interpretation of special characters in password
|
|
64
60
|
const jdbcUrl = `jdbc:sqlserver://${config.dbHost}:${config.dbPort};databaseName=${config.dbDatabase};trustServerCertificate=${config.dbTrustServerCertificate}`;
|
|
65
|
-
// Build common args
|
|
61
|
+
// Build common args - use targetSchema instead of coreSchema
|
|
62
|
+
// This ensures diagnostic validates the schema being migrated, not the core MJ schema
|
|
66
63
|
const baseArgs = [
|
|
67
64
|
`-url=${jdbcUrl}`,
|
|
68
65
|
`-user=${config.codeGenLogin}`,
|
|
69
66
|
`-password=${config.codeGenPassword}`,
|
|
70
|
-
`-schemas=${
|
|
67
|
+
`-schemas=${targetSchema}`
|
|
71
68
|
];
|
|
69
|
+
// Add placeholder arguments from config
|
|
70
|
+
// Read directly from config.SQLOutput.schemaPlaceholders since node-flyway doesn't use them
|
|
71
|
+
const schemaPlaceholders = config.SQLOutput?.schemaPlaceholders;
|
|
72
|
+
if (schemaPlaceholders && schemaPlaceholders.length > 0) {
|
|
73
|
+
schemaPlaceholders.forEach(({ schema, placeholder }) => {
|
|
74
|
+
const cleanPlaceholder = placeholder.replace(/^\$\{|\}$/g, '');
|
|
75
|
+
// Skip Flyway built-in placeholders
|
|
76
|
+
if (cleanPlaceholder.startsWith('flyway:'))
|
|
77
|
+
return;
|
|
78
|
+
// Flyway CLI format: -placeholders.PLACEHOLDER_NAME=value
|
|
79
|
+
baseArgs.push(`-placeholders.${cleanPlaceholder}=${schema}`);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
72
82
|
// Convert relative migration paths to absolute paths
|
|
73
83
|
const absoluteMigrationPaths = flywayConfig.migrationLocations.map((loc) => {
|
|
74
84
|
// Remove 'filesystem:' prefix if present
|
|
@@ -76,50 +86,50 @@ class Migrate extends core_1.Command {
|
|
|
76
86
|
// Convert to absolute path if relative
|
|
77
87
|
return path.isAbsolute(cleanLoc) ? loc : `filesystem:${path.resolve(cleanLoc)}`;
|
|
78
88
|
});
|
|
79
|
-
//
|
|
80
|
-
|
|
89
|
+
// Skip validation and go straight to migrate
|
|
90
|
+
// node-flyway already tried and failed, so we just need to run the actual migration
|
|
91
|
+
const migrateArgs = [
|
|
81
92
|
...baseArgs,
|
|
93
|
+
`-baselineVersion=${config.baselineVersion}`,
|
|
94
|
+
`-baselineOnMigrate=${config.baselineOnMigrate}`,
|
|
82
95
|
`-locations=${absoluteMigrationPaths.join(',')}`,
|
|
83
|
-
'
|
|
96
|
+
'migrate'
|
|
84
97
|
];
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
// Check if
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
const migrateResult = spawnSync(flywayExePath, migrateArgs, { encoding: 'utf8' });
|
|
99
|
+
const migrateOutput = migrateResult.stderr || migrateResult.stdout || '';
|
|
100
|
+
// Check if output contains error messages even if exit code is 0
|
|
101
|
+
// Exclude SQL Server informational messages and recompilation warnings
|
|
102
|
+
const hasErrorsInOutput = (migrateOutput.toLowerCase().includes('error') &&
|
|
103
|
+
!migrateOutput.includes('Error Code: 0') && // Informational messages
|
|
104
|
+
!migrateOutput.includes('Error Code: 15070')) || // Recompilation warnings
|
|
105
|
+
migrateOutput.toLowerCase().includes('incorrect syntax') ||
|
|
106
|
+
migrateOutput.toLowerCase().includes('must be the only statement');
|
|
107
|
+
if (migrateResult.status === 0 && !hasErrorsInOutput) {
|
|
108
|
+
// Migration actually succeeded - don't throw error
|
|
109
|
+
spinner.succeed('Migrations complete');
|
|
110
|
+
this.log(`Execution time: ${result.additionalDetails.executionTime / 1000}s`);
|
|
111
|
+
if (flags.verbose) {
|
|
112
|
+
this.logToStderr('\nš” Note: Migration succeeded but node-flyway had trouble parsing the response.');
|
|
113
|
+
this.logToStderr(' This is a known issue with node-flyway and does not affect migration success.\n');
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
else if (migrateResult.status === 0 && hasErrorsInOutput) {
|
|
118
|
+
// Exit code was 0 but output contains errors - SQL script likely has error handling
|
|
119
|
+
spinner.fail();
|
|
120
|
+
this.logToStderr('\nā ļø Migration completed but errors were detected in output:\n');
|
|
121
|
+
this.analyzeFlywayError(migrateOutput, config);
|
|
90
122
|
}
|
|
91
123
|
else {
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
`-baselineOnMigrate=${config.baselineOnMigrate}`,
|
|
97
|
-
`-locations=${absoluteMigrationPaths.join(',')}`,
|
|
98
|
-
'migrate'
|
|
99
|
-
];
|
|
100
|
-
const migrateResult = spawnSync(flywayExePath, migrateArgs, { encoding: 'utf8' });
|
|
101
|
-
const migrateOutput = migrateResult.stderr || migrateResult.stdout || '';
|
|
102
|
-
// Check if output contains error messages even if exit code is 0
|
|
103
|
-
const hasErrorsInOutput = migrateOutput.toLowerCase().includes('error') ||
|
|
104
|
-
migrateOutput.toLowerCase().includes('incorrect syntax') ||
|
|
105
|
-
migrateOutput.toLowerCase().includes('must be the only statement');
|
|
106
|
-
if (migrateResult.status === 0 && !hasErrorsInOutput) {
|
|
107
|
-
this.logToStderr('ā Migration executed successfully (Flyway CLI reports success)');
|
|
108
|
-
this.logToStderr(' The issue was with node-flyway response parsing only\n');
|
|
109
|
-
}
|
|
110
|
-
else if (migrateResult.status === 0 && hasErrorsInOutput) {
|
|
111
|
-
// Exit code was 0 but output contains errors - SQL script likely has error handling
|
|
112
|
-
this.logToStderr('ā ļø Migration completed but errors were detected in output:\n');
|
|
113
|
-
this.analyzeFlywayError(migrateOutput, config);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
// Migration failed with non-zero exit code
|
|
117
|
-
this.analyzeFlywayError(migrateOutput, config);
|
|
118
|
-
}
|
|
124
|
+
// Migration failed with non-zero exit code
|
|
125
|
+
spinner.fail();
|
|
126
|
+
this.logToStderr('\nā Migration failed:\n');
|
|
127
|
+
this.analyzeFlywayError(migrateOutput, config);
|
|
119
128
|
}
|
|
120
129
|
}
|
|
121
130
|
catch (err) {
|
|
122
|
-
|
|
131
|
+
spinner.fail();
|
|
132
|
+
this.logToStderr(`\nā Error running diagnostic: ${err.message || err}\n`);
|
|
123
133
|
}
|
|
124
134
|
this.error('Migration failed - see diagnostic information above');
|
|
125
135
|
}
|
|
@@ -250,4 +260,4 @@ class Migrate extends core_1.Command {
|
|
|
250
260
|
}
|
|
251
261
|
}
|
|
252
262
|
}
|
|
253
|
-
|
|
263
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"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"}
|