@tramvai/tools-migrate 0.7.1 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/migrate.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +71 -67
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
package/bin/migrate.js
CHANGED
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,wBAAsB,GAAG,kBAwFxB;AAED,cAAc,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.run = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
5
|
const pathOr_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/pathOr"));
|
|
5
6
|
const pathSet_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/pathSet"));
|
|
@@ -18,74 +19,77 @@ const cwd = process.env.INIT_CWD || process.cwd();
|
|
|
18
19
|
const log = (0, logger_1.logger)('tramvai-migrate');
|
|
19
20
|
logger_1.logger.enable('tramvai-migrate');
|
|
20
21
|
// eslint-disable-next-line max-statements
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
22
|
+
function run() {
|
|
23
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const { name: cwdPackageName } = yield (0, fs_extra_1.readJSON)((0, path_1.resolve)(cwd, 'package.json')).catch(() => ({}));
|
|
25
|
+
const tramvaiJSONPath = yield (0, api_1.getTramvaiJSONPath)(cwd);
|
|
26
|
+
// ignore the migration check in the tramvai repository,
|
|
27
|
+
// or is absent `tramvai.json`,
|
|
28
|
+
// or if the environment variable is set,
|
|
29
|
+
// or we do the installation inside the CI,
|
|
30
|
+
if (cwdPackageName === 'tramvai' ||
|
|
31
|
+
!tramvaiJSONPath ||
|
|
32
|
+
process.env.SKIP_TRAMVAI_MIGRATIONS ||
|
|
33
|
+
ciInfo.isCi) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
log.info('Checking migrations');
|
|
37
|
+
const files = yield (0, fast_glob_1.default)([
|
|
38
|
+
`${constants_1.TRAMVAI_BASE_PATH}*/__migrations__/*.js`,
|
|
39
|
+
`${constants_1.TRAMVAI_TINKOFF_BASE_PATH}*/__migrations__/*.js`,
|
|
40
|
+
], {
|
|
41
|
+
cwd,
|
|
42
|
+
objectMode: true,
|
|
43
|
+
ignore: ['**/*.spec.js'],
|
|
44
|
+
});
|
|
45
|
+
if (!files.length) {
|
|
46
|
+
log.info('Migrations are not found. The migration process is completed');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
log.debug('Migrations found');
|
|
50
|
+
files.sort((a, b) => {
|
|
51
|
+
return a.name.localeCompare(b.name);
|
|
52
|
+
});
|
|
53
|
+
const appliedFilename = (0, path_1.resolve)(cwd, constants_1.APPLIED_FILENAME);
|
|
54
|
+
yield (0, fs_extra_1.ensureFile)(appliedFilename);
|
|
55
|
+
let appliedInfo = yield (0, fs_extra_1.readJSON)(appliedFilename).catch(() => ({}));
|
|
56
|
+
let api;
|
|
57
|
+
let save;
|
|
58
|
+
log.info('Starting to perform migrations');
|
|
59
|
+
for (const fileInfo of files) {
|
|
60
|
+
const packageName = getPackageName(fileInfo.path);
|
|
61
|
+
const migrationPath = [
|
|
62
|
+
/@tramvai-tinkoff/.test(fileInfo.path) ? 'tinkoff-package' : 'package',
|
|
63
|
+
packageName,
|
|
64
|
+
'migrations',
|
|
65
|
+
];
|
|
66
|
+
const appliedMigrations = (0, pathOr_1.default)(migrationPath, [], appliedInfo);
|
|
67
|
+
if (!appliedMigrations.includes(fileInfo.name)) {
|
|
68
|
+
log.info(`Running migration '${fileInfo.name}' from module '${packageName}'`);
|
|
69
|
+
if (!api) {
|
|
70
|
+
// TODO: createApi is executed for every migration
|
|
71
|
+
// that could be optimized to single initialization
|
|
72
|
+
// eslint-disable-next-line no-await-in-loop
|
|
73
|
+
({ api, save } = yield (0, api_1.createApi)(cwd));
|
|
74
|
+
}
|
|
75
|
+
const migration = require((0, path_1.resolve)(cwd, fileInfo.path));
|
|
76
|
+
try {
|
|
77
|
+
// eslint-disable-next-line no-await-in-loop
|
|
78
|
+
yield migration(api);
|
|
79
|
+
appliedMigrations.push(fileInfo.name);
|
|
80
|
+
appliedInfo = (0, pathSet_1.default)(migrationPath, appliedMigrations, appliedInfo);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
log.error(error, `Migration error '${fileInfo.name}' from module '${packageName}'`);
|
|
84
|
+
}
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
87
|
+
log.info('All migrations are completed, save the information about the completed migrations');
|
|
88
|
+
yield (save === null || save === void 0 ? void 0 : save());
|
|
89
|
+
yield (0, fs_extra_1.writeJSON)(appliedFilename, appliedInfo);
|
|
90
|
+
log.info('Migrations successfully completed');
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
exports.run = run;
|
|
90
94
|
tslib_1.__exportStar(require("./types"), exports);
|
|
91
95
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/tools-migrate",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"author": "",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@tinkoff/logger": "0.10.
|
|
16
|
-
"@tinkoff/package-manager-wrapper": "0.2.
|
|
15
|
+
"@tinkoff/logger": "0.10.170",
|
|
16
|
+
"@tinkoff/package-manager-wrapper": "0.2.2",
|
|
17
17
|
"@tinkoff/utils": "^2.1.2",
|
|
18
18
|
"env-ci": "^5.0.2",
|
|
19
19
|
"fast-glob": "^3.2.2",
|