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:
parent
d1eb2b17ec
commit
22ec5d618f
29
debug/checksum-db.js
Normal file
29
debug/checksum-db.js
Normal 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); })
|
||||
@ -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": {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user