diff --git a/debug/checksum-db.js b/debug/checksum-db.js new file mode 100644 index 0000000..fbe8537 --- /dev/null +++ b/debug/checksum-db.js @@ -0,0 +1,29 @@ +'use strict'; +const Database = require('../src/database'); + +function CheckDB() { + return new Promise((resolve, reject) => { + const config = require(`../args/config.json`); + Database.init(config["sql_user"], config["sql_pwd"], config["sql_db"], config["sql_host"]).then(result => { + let ds = require("../src/data_structure.json"); + let cols = []; + for (let s in ds) + for (let c in ds[s]) + cols.push(ds[s][c]); + let crc_ = "SUM(" + cols.map(c => `IFNULL(CRC32(${c}), 0)`).join('+') + ")"; + Database.DB.listTable().then(disks => { + let promises = disks.map(d => Database.query(`SELECT ? AS disk, COUNT(*) AS total_rec, ${crc_} AS crc_checksum FROM _${d}`, d)); + Promise.allSettled(promises).then(results => { + let records = results.filter(r => r.status === "fulfilled").map(r => r.value[0]); + console.table(records); + let errors = results.filter(r => r.status === "rejected"); + if (errors.length) + console.error(errors.map(r => r.reason)); + resolve(true); + }) + }).catch(error => reject(error)); + }).catch(error => reject(error)); + }) +} + +CheckDB().then(_ => process.exit(0)).catch(error => { console.error(error); process.exit(1); }) \ No newline at end of file diff --git a/package.json b/package.json index c761d1a..15e7b09 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "setup": "node setup/post-install.js", "configure": "node setup/configure-settings.js", "reset-password": "node setup/reset-password.js", + "checksum-db": "node debug/checksum-db.js", "start": "node start.js" }, "repository": {