@sqb/migrator 4.5.4 → 4.5.6
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/cjs/db-migrator.js +17 -16
- package/esm/db-migrator.d.ts +1 -1
- package/esm/db-migrator.js +9 -9
- package/esm/types.d.ts +3 -3
- package/package.json +3 -3
package/cjs/db-migrator.js
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DbMigrator = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
6
|
+
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
7
7
|
const postgresql_client_1 = require("postgresql-client");
|
|
8
8
|
const load_task_files_js_1 = require("./load-task-files.js");
|
|
9
9
|
const ignoreEventListener = () => 0;
|
|
10
10
|
class DbMigrator {
|
|
11
11
|
async execute(options) {
|
|
12
12
|
const { connection, schema } = options;
|
|
13
|
-
const migrationPackage = DbMigrator.loadMigrationPackage(options.migrationPackage);
|
|
13
|
+
const migrationPackage = await DbMigrator.loadMigrationPackage(options.migrationPackage);
|
|
14
14
|
const targetVersion = Math.min(options.targetVersion || Number.MAX_SAFE_INTEGER, migrationPackage.maxVersion);
|
|
15
15
|
if (targetVersion && targetVersion < migrationPackage.minVersion)
|
|
16
16
|
throw new Error(`Version mismatch. Target schema version (${targetVersion}) is lower than ` +
|
|
@@ -91,12 +91,12 @@ class DbMigrator {
|
|
|
91
91
|
emit('finish');
|
|
92
92
|
return true;
|
|
93
93
|
}
|
|
94
|
-
static loadMigrationPackage(pkg) {
|
|
95
|
-
const migarr = typeof pkg.migrations === 'function' ? pkg.migrations() : pkg.migrations;
|
|
94
|
+
static async loadMigrationPackage(pkg) {
|
|
95
|
+
const migarr = typeof pkg.migrations === 'function' ? await pkg.migrations() : pkg.migrations;
|
|
96
96
|
const migrations = [];
|
|
97
97
|
for (const x of migarr) {
|
|
98
98
|
if (typeof x === 'string')
|
|
99
|
-
locateMigrations(migrations, x);
|
|
99
|
+
await locateMigrations(migrations, x);
|
|
100
100
|
else
|
|
101
101
|
migrations.push(x);
|
|
102
102
|
}
|
|
@@ -190,26 +190,27 @@ insert into ${schema}.${infTable} (status) values ('init');
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
exports.DbMigrator = DbMigrator;
|
|
193
|
-
function locateMigrations(trg, dir) {
|
|
193
|
+
async function locateMigrations(trg, dir) {
|
|
194
|
+
var _a;
|
|
194
195
|
for (const f of ['migration.ts', 'migration.js', 'migration.json']) {
|
|
195
|
-
const filename =
|
|
196
|
-
if (
|
|
197
|
-
const x =
|
|
198
|
-
const fileDir =
|
|
196
|
+
const filename = node_path_1.default.join(dir, f);
|
|
197
|
+
if (node_fs_1.default.existsSync(filename)) {
|
|
198
|
+
const x = await (_a = filename, Promise.resolve().then(() => tslib_1.__importStar(require(_a))));
|
|
199
|
+
const fileDir = node_path_1.default.dirname(filename);
|
|
199
200
|
const obj = x.default || x;
|
|
200
201
|
if (obj.version && obj.tasks) {
|
|
201
202
|
const migration = { ...obj };
|
|
202
|
-
migration.tasks = obj.tasks.map(k => (typeof k === 'string' ?
|
|
203
|
+
migration.tasks = obj.tasks.map(k => (typeof k === 'string' ? node_path_1.default.resolve(fileDir, k) : k));
|
|
203
204
|
trg.push(migration);
|
|
204
205
|
}
|
|
205
206
|
return;
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
|
-
const files =
|
|
209
|
+
const files = node_fs_1.default.readdirSync(dir);
|
|
209
210
|
for (const f of files) {
|
|
210
|
-
const dirname =
|
|
211
|
-
if (
|
|
212
|
-
locateMigrations(trg, dirname);
|
|
211
|
+
const dirname = node_path_1.default.join(dir, f);
|
|
212
|
+
if (node_fs_1.default.statSync(dirname).isDirectory()) {
|
|
213
|
+
await locateMigrations(trg, dirname);
|
|
213
214
|
}
|
|
214
215
|
}
|
|
215
216
|
}
|
package/esm/db-migrator.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ interface LoadedMigrationPackage {
|
|
|
16
16
|
}
|
|
17
17
|
export declare class DbMigrator {
|
|
18
18
|
execute(options: MigrationExecuteOptions): Promise<boolean>;
|
|
19
|
-
static loadMigrationPackage(pkg: MigrationPackage): LoadedMigrationPackage
|
|
19
|
+
static loadMigrationPackage(pkg: MigrationPackage): Promise<LoadedMigrationPackage>;
|
|
20
20
|
private _lockSchema;
|
|
21
21
|
private _unlockSchema;
|
|
22
22
|
private _backup;
|
package/esm/db-migrator.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
3
|
import { stringifyValueForSQL } from 'postgresql-client';
|
|
4
4
|
import { loadTaskFiles } from './load-task-files.js';
|
|
5
5
|
const ignoreEventListener = () => 0;
|
|
6
6
|
export class DbMigrator {
|
|
7
7
|
async execute(options) {
|
|
8
8
|
const { connection, schema } = options;
|
|
9
|
-
const migrationPackage = DbMigrator.loadMigrationPackage(options.migrationPackage);
|
|
9
|
+
const migrationPackage = await DbMigrator.loadMigrationPackage(options.migrationPackage);
|
|
10
10
|
const targetVersion = Math.min(options.targetVersion || Number.MAX_SAFE_INTEGER, migrationPackage.maxVersion);
|
|
11
11
|
if (targetVersion && targetVersion < migrationPackage.minVersion)
|
|
12
12
|
throw new Error(`Version mismatch. Target schema version (${targetVersion}) is lower than ` +
|
|
@@ -87,12 +87,12 @@ export class DbMigrator {
|
|
|
87
87
|
emit('finish');
|
|
88
88
|
return true;
|
|
89
89
|
}
|
|
90
|
-
static loadMigrationPackage(pkg) {
|
|
91
|
-
const migarr = typeof pkg.migrations === 'function' ? pkg.migrations() : pkg.migrations;
|
|
90
|
+
static async loadMigrationPackage(pkg) {
|
|
91
|
+
const migarr = typeof pkg.migrations === 'function' ? await pkg.migrations() : pkg.migrations;
|
|
92
92
|
const migrations = [];
|
|
93
93
|
for (const x of migarr) {
|
|
94
94
|
if (typeof x === 'string')
|
|
95
|
-
locateMigrations(migrations, x);
|
|
95
|
+
await locateMigrations(migrations, x);
|
|
96
96
|
else
|
|
97
97
|
migrations.push(x);
|
|
98
98
|
}
|
|
@@ -185,11 +185,11 @@ insert into ${schema}.${infTable} (status) values ('init');
|
|
|
185
185
|
return sql;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
function locateMigrations(trg, dir) {
|
|
188
|
+
async function locateMigrations(trg, dir) {
|
|
189
189
|
for (const f of ['migration.ts', 'migration.js', 'migration.json']) {
|
|
190
190
|
const filename = path.join(dir, f);
|
|
191
191
|
if (fs.existsSync(filename)) {
|
|
192
|
-
const x =
|
|
192
|
+
const x = await import(filename);
|
|
193
193
|
const fileDir = path.dirname(filename);
|
|
194
194
|
const obj = x.default || x;
|
|
195
195
|
if (obj.version && obj.tasks) {
|
|
@@ -204,7 +204,7 @@ function locateMigrations(trg, dir) {
|
|
|
204
204
|
for (const f of files) {
|
|
205
205
|
const dirname = path.join(dir, f);
|
|
206
206
|
if (fs.statSync(dirname).isDirectory()) {
|
|
207
|
-
locateMigrations(trg, dirname);
|
|
207
|
+
await locateMigrations(trg, dirname);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
}
|
package/esm/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type MigrationsThunk = (string | Migration)[] | (() => (string | Migration)[]) | (() => Promise<(string | Migration)[]>);
|
|
2
2
|
export interface MigrationPackage {
|
|
3
3
|
description: string;
|
|
4
4
|
informationTableName?: string;
|
|
@@ -16,8 +16,8 @@ export interface Migration {
|
|
|
16
16
|
version: number;
|
|
17
17
|
tasks: string[] | MigrationTask[];
|
|
18
18
|
}
|
|
19
|
-
export
|
|
20
|
-
export
|
|
19
|
+
export type MigrationTaskFunction = (connection: any) => void | Promise<void>;
|
|
20
|
+
export type MigrationTask = SqlScriptMigrationTask | CustomMigrationTask | InsertDataMigrationTask;
|
|
21
21
|
export interface BaseMigrationTask {
|
|
22
22
|
title: string;
|
|
23
23
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sqb/migrator",
|
|
3
3
|
"description": "Database migrator for SQB",
|
|
4
|
-
"version": "4.5.
|
|
4
|
+
"version": "4.5.6",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Eray Hanoglu <e.hanoglu@panates.com>",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"clean:cover": "rimraf ../../coverage/migrator"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@sqb/builder": "^4.5.
|
|
33
|
-
"@sqb/connect": "^4.5.
|
|
32
|
+
"@sqb/builder": "^4.5.6",
|
|
33
|
+
"@sqb/connect": "^4.5.6"
|
|
34
34
|
},
|
|
35
35
|
"type": "module",
|
|
36
36
|
"types": "esm/index.d.ts",
|