rake-db 2.3.8 → 2.3.9
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/CHANGELOG.md +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/commands/migrateOrRollback.test.ts +20 -4
- package/src/commands/migrateOrRollback.ts +36 -5
- package/src/common.ts +8 -0
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -389,6 +389,7 @@ declare namespace RakeDbAst {
|
|
|
389
389
|
};
|
|
390
390
|
}
|
|
391
391
|
|
|
392
|
+
declare type Db = DbResult<typeof columnTypes>;
|
|
392
393
|
declare type RakeDbConfig = {
|
|
393
394
|
migrationsPath: string;
|
|
394
395
|
migrationsTable: string;
|
|
@@ -396,6 +397,10 @@ declare type RakeDbConfig = {
|
|
|
396
397
|
noPrimaryKey?: NoPrimaryKeyOption;
|
|
397
398
|
appCodeUpdater?: AppCodeUpdater;
|
|
398
399
|
useCodeUpdater?: boolean;
|
|
400
|
+
beforeMigrate?(db: Db): Promise<void>;
|
|
401
|
+
afterMigrate?(db: Db): Promise<void>;
|
|
402
|
+
beforeRollback?(db: Db): Promise<void>;
|
|
403
|
+
afterRollback?(db: Db): Promise<void>;
|
|
399
404
|
} & QueryLogOptions;
|
|
400
405
|
declare type AppCodeUpdater = (params: {
|
|
401
406
|
ast: RakeDbAst;
|
package/dist/index.js
CHANGED
|
@@ -1137,8 +1137,9 @@ var __spreadValues$1 = (a, b) => {
|
|
|
1137
1137
|
}
|
|
1138
1138
|
return a;
|
|
1139
1139
|
};
|
|
1140
|
+
const getDb = (adapter) => pqb.createDb({ adapter, columnTypes: pqb.columnTypes });
|
|
1140
1141
|
const migrateOrRollback = async (options, config, args, up) => {
|
|
1141
|
-
var _a;
|
|
1142
|
+
var _a, _b, _c, _d, _e;
|
|
1142
1143
|
config = __spreadValues$1({}, config);
|
|
1143
1144
|
const files = await getMigrationFiles(config, up);
|
|
1144
1145
|
let count = up ? Infinity : 1;
|
|
@@ -1156,8 +1157,14 @@ const migrateOrRollback = async (options, config, args, up) => {
|
|
|
1156
1157
|
delete config.appCodeUpdater;
|
|
1157
1158
|
const appCodeUpdaterCache = {};
|
|
1158
1159
|
for (const opts of pqb.toArray(options)) {
|
|
1159
|
-
const
|
|
1160
|
-
|
|
1160
|
+
const adapter = new pqb.Adapter(opts);
|
|
1161
|
+
let db;
|
|
1162
|
+
if (up) {
|
|
1163
|
+
await ((_a = config.beforeMigrate) == null ? void 0 : _a.call(config, db != null ? db : db = getDb(adapter)));
|
|
1164
|
+
} else {
|
|
1165
|
+
await ((_b = config.beforeRollback) == null ? void 0 : _b.call(config, db != null ? db : db = getDb(adapter)));
|
|
1166
|
+
}
|
|
1167
|
+
const migratedVersions = await getMigratedVersionsMap(adapter, config);
|
|
1161
1168
|
try {
|
|
1162
1169
|
for (const file of files) {
|
|
1163
1170
|
if (up && migratedVersions[file.version] || !up && !migratedVersions[file.version]) {
|
|
@@ -1165,11 +1172,23 @@ const migrateOrRollback = async (options, config, args, up) => {
|
|
|
1165
1172
|
}
|
|
1166
1173
|
if (count-- <= 0)
|
|
1167
1174
|
break;
|
|
1168
|
-
await processMigration(
|
|
1169
|
-
|
|
1175
|
+
await processMigration(
|
|
1176
|
+
adapter,
|
|
1177
|
+
up,
|
|
1178
|
+
file,
|
|
1179
|
+
config,
|
|
1180
|
+
opts,
|
|
1181
|
+
appCodeUpdaterCache
|
|
1182
|
+
);
|
|
1183
|
+
(_c = config.logger) == null ? void 0 : _c.log(`${file.path} ${up ? "migrated" : "rolled back"}`);
|
|
1184
|
+
}
|
|
1185
|
+
if (up) {
|
|
1186
|
+
await ((_d = config.afterMigrate) == null ? void 0 : _d.call(config, db != null ? db : db = getDb(adapter)));
|
|
1187
|
+
} else {
|
|
1188
|
+
await ((_e = config.afterRollback) == null ? void 0 : _e.call(config, db != null ? db : db = getDb(adapter)));
|
|
1170
1189
|
}
|
|
1171
1190
|
} finally {
|
|
1172
|
-
await
|
|
1191
|
+
await adapter.close();
|
|
1173
1192
|
}
|
|
1174
1193
|
delete config.appCodeUpdater;
|
|
1175
1194
|
}
|