Converter.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //TODO: удалить модуль в 2023г
  2. const fs = require('fs-extra');
  3. const log = new (require('../core/AppLogger'))().log;//singleton
  4. class Converter {
  5. async run(config) {
  6. log('Converter start');
  7. try {
  8. const connManager = new (require('./ConnManager'))();//singleton
  9. const storagePool = connManager.pool.readerStorage;
  10. const jembaConnManager = new (require('./JembaConnManager'))();//singleton
  11. const db = jembaConnManager.db['reader-storage'];
  12. const srcDbPath = `${config.dataDir}/reader-storage.sqlite`;
  13. if (!await fs.pathExists(srcDbPath)) {
  14. log(LM_WARN, ' Source DB does not exist, nothing to do');
  15. return;
  16. }
  17. const rows = await db.select({table: 'storage', count: true});
  18. if (rows.length && rows[0].count != 0) {
  19. log(LM_WARN, ` Destination table already exists (found ${rows[0].count} items), nothing to do`);
  20. return;
  21. }
  22. const dbSrc = await storagePool.get();
  23. try {
  24. const rows = await dbSrc.all(`SELECT * FROM storage`);
  25. await db.insert({table: 'storage', rows});
  26. log(` Inserted ${rows.length} items`);
  27. } finally {
  28. dbSrc.ret();
  29. }
  30. } finally {
  31. log('Converter finish');
  32. }
  33. }
  34. }
  35. module.exports = Converter;