@ask-ell/back-end 0.0.7 → 0.0.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/package.json +5 -2
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +1 -0
- package/src/scripts/index.d.ts +2 -0
- package/src/scripts/index.d.ts.map +1 -0
- package/src/scripts/index.js +4 -0
- package/src/scripts/move-keyv-data.script.d.ts +6 -0
- package/src/scripts/move-keyv-data.script.d.ts.map +1 -0
- package/src/scripts/move-keyv-data.script.js +55 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ask-ell/back-end",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -8,9 +8,12 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@ask-ell/core": "^1.3.1",
|
|
10
10
|
"@ask-ell/ask": "^0.0.4",
|
|
11
|
+
"@ask-ell/node": "^0.0.1",
|
|
11
12
|
"keyv": "^5.6.0",
|
|
12
13
|
"@keyv/postgres": "^2.2.3",
|
|
13
14
|
"@keyv/sqlite": "^4.0.8",
|
|
14
|
-
"@nestjs/common": "^11.1.7"
|
|
15
|
+
"@nestjs/common": "^11.1.7",
|
|
16
|
+
"pg": "^8.22.0",
|
|
17
|
+
"@sentry/nestjs": "^10.47.0"
|
|
15
18
|
}
|
|
16
19
|
}
|
package/src/index.d.ts
CHANGED
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./add-ons"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./scripts"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./keyv.store.adapter.factory"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./application.base"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/scripts/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Script, ExecuteOptions } from '@ask-ell/node';
|
|
2
|
+
export declare class MoveKeyvDataScript extends Script {
|
|
3
|
+
constructor();
|
|
4
|
+
execute({ logger, arguments: { origin, target }, prompts: { confirm } }: ExecuteOptions): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=move-keyv-data.script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-keyv-data.script.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/scripts/move-keyv-data.script.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AASvD,qBAAa,kBAAmB,SAAQ,MAAM;;IAWpC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA0ChH"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MoveKeyvDataScript = void 0;
|
|
4
|
+
const core_1 = require("@ask-ell/core");
|
|
5
|
+
const pg_1 = require("pg");
|
|
6
|
+
const node_1 = require("@ask-ell/node");
|
|
7
|
+
const nest_1 = require("@ask-ell/nest");
|
|
8
|
+
class MoveKeyvDataScript extends node_1.Script {
|
|
9
|
+
constructor() {
|
|
10
|
+
super({
|
|
11
|
+
arguments: [
|
|
12
|
+
{ name: 'origin', description: 'Origin Postgres database URI', required: true },
|
|
13
|
+
{ name: 'target', description: 'Target Postgres database URI', required: true }
|
|
14
|
+
],
|
|
15
|
+
logger: nest_1.NestLogger.fromClass(MoveKeyvDataScript)
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async execute({ logger, arguments: { origin, target }, prompts: { confirm } }) {
|
|
19
|
+
const originPostgresClient = new pg_1.Client(origin);
|
|
20
|
+
const targetPostgresClient = new pg_1.Client(target);
|
|
21
|
+
logger.log('Reading databases...');
|
|
22
|
+
await Promise.all([
|
|
23
|
+
originPostgresClient.connect(),
|
|
24
|
+
targetPostgresClient.connect()
|
|
25
|
+
]);
|
|
26
|
+
try {
|
|
27
|
+
const { rows } = await originPostgresClient.query('SELECT * FROM keyv');
|
|
28
|
+
const rowsCount = rows.length;
|
|
29
|
+
logger.log(`You're going to insert ${rowsCount} keyv entries from the original database to the target database.`);
|
|
30
|
+
const confirmed = await confirm('Are you sure you want to proceed?');
|
|
31
|
+
if (confirmed) {
|
|
32
|
+
logger.log('Inserting entries into the target database...');
|
|
33
|
+
const incrementor = new core_1.PercentageIncrementor(rowsCount);
|
|
34
|
+
incrementor.onIncrement(({ achivmentOnPercent }) => {
|
|
35
|
+
logger.log(`Progress: ${achivmentOnPercent}%`);
|
|
36
|
+
});
|
|
37
|
+
for (const { key, value } of rows) {
|
|
38
|
+
await targetPostgresClient.query('INSERT INTO keyv (key, value) VALUES ($1, $2)', [key, value]);
|
|
39
|
+
incrementor.increment();
|
|
40
|
+
}
|
|
41
|
+
logger.log(`${rowsCount} entries inserted into the target database.`);
|
|
42
|
+
logger.log('Migration completed successfully.');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
logger.log('Migration cancelled.');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
await originPostgresClient.end();
|
|
50
|
+
await targetPostgresClient.end();
|
|
51
|
+
logger.log('Database connections closed.');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.MoveKeyvDataScript = MoveKeyvDataScript;
|