Добавлен конвертер SQLITE -> JambaDb
This commit is contained in:
42
server/db/Converter.js
Normal file
42
server/db/Converter.js
Normal file
@@ -0,0 +1,42 @@
|
||||
//TODO: удалить модуль в 2023г
|
||||
const fs = require('fs-extra');
|
||||
const log = new (require('../core/AppLogger'))().log;//singleton
|
||||
|
||||
class Converter {
|
||||
async run(config) {
|
||||
log('Converter start');
|
||||
|
||||
try {
|
||||
const connManager = new (require('./ConnManager'))();//singleton
|
||||
const storagePool = connManager.pool.readerStorage;
|
||||
|
||||
const jembaConnManager = new (require('./JembaConnManager'))();//singleton
|
||||
const db = jembaConnManager.db['reader-storage'];
|
||||
|
||||
const srcDbPath = `${config.dataDir}/reader-storage.sqlite`;
|
||||
if (!await fs.pathExists(srcDbPath)) {
|
||||
log(LM_WARN, ' Source DB does not exist, nothing to do');
|
||||
return;
|
||||
}
|
||||
|
||||
const rows = await db.select({table: 'storage', count: true});
|
||||
if (rows.length && rows[0].count != 0) {
|
||||
log(LM_WARN, ' Destination table already exists, nothing to do');
|
||||
return;
|
||||
}
|
||||
|
||||
const dbSrc = await storagePool.get();
|
||||
try {
|
||||
const rows = await dbSrc.all(`SELECT * FROM storage`);
|
||||
await db.insert({table: 'storage', rows});
|
||||
log(` Inserted ${rows.length} items`);
|
||||
} finally {
|
||||
dbSrc.ret();
|
||||
}
|
||||
} finally {
|
||||
log('Converter finish');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Converter;
|
||||
@@ -49,6 +49,10 @@ async function init() {
|
||||
|
||||
const jembaConnManager = new (require('./db/JembaConnManager'))();//singleton
|
||||
await jembaConnManager.init(config);
|
||||
|
||||
//converter SQLITE => JembaDb
|
||||
const converter = new (require('./db/Converter'))();
|
||||
await converter.run(config);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
@@ -110,9 +114,9 @@ async function main() {
|
||||
await main();
|
||||
} catch (e) {
|
||||
if (log)
|
||||
log(LM_FATAL, e);
|
||||
log(LM_FATAL, e.stack);
|
||||
else
|
||||
console.error(e);
|
||||
console.error(e.stack);
|
||||
ayncExit.exit(1);
|
||||
}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user