Adding checksum-db script

- Usage: npm run checksum-db
- Prints the total records and CRC32 checksum for each node table stored.
This commit is contained in:
sairajzero 2022-12-24 22:42:48 +05:30
parent d1eb2b17ec
commit 22ec5d618f
2 changed files with 30 additions and 0 deletions

29
debug/checksum-db.js Normal file
View File

@ -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); })

View File

@ -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": {