Adding checksum-db script
- Usage: npm run checksum-db - Prints the total records and checksum for each table stored.
This commit is contained in:
parent
9686f29f8e
commit
1ad701a70b
56
debug/checksum-db.js
Normal file
56
debug/checksum-db.js
Normal file
@ -0,0 +1,56 @@
|
||||
'use strict';
|
||||
|
||||
let _I = "";
|
||||
for (let arg of process.argv)
|
||||
if (/^-I=/.test(arg)) {
|
||||
_I = arg.split(/=(.*)/s)[1];
|
||||
break;
|
||||
}
|
||||
|
||||
const DB = require('../src/database');
|
||||
|
||||
const ignoreTables = ['_backupCache', 'sinkShares'];
|
||||
var ignoreTables_regex = new RegExp(ignoreTables.join("|"), "i");
|
||||
function listTables() {
|
||||
return new Promise((resolve, reject) => {
|
||||
DB.query("SHOW TABLES").then(result => {
|
||||
let tables = [];
|
||||
for (let i in result)
|
||||
for (let j in result[i])
|
||||
if (!ignoreTables_regex.test(result[i][j]))
|
||||
tables.push(result[i][j]);
|
||||
resolve(tables);
|
||||
}).catch(error => reject(error))
|
||||
})
|
||||
}
|
||||
|
||||
function checksumTable(table) {
|
||||
return new Promise((resolve, reject) => {
|
||||
DB.query("CHECKSUM TABLE " + table).then(result => {
|
||||
let checksum = result[0].Checksum;
|
||||
DB.query("SELECT COUNT(*) AS rec_count FROM " + table)
|
||||
.then(result => resolve({ table, rec_count: result[0].rec_count, checksum }))
|
||||
.catch(error => reject(error))
|
||||
}).catch(error => reject(error))
|
||||
})
|
||||
}
|
||||
|
||||
function CheckDB() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const config = require(`../args/config${_I}.json`);
|
||||
DB.connect(config["sql_user"], config["sql_pwd"], config["sql_db"], config["sql_host"]).then(pool => {
|
||||
listTables().then(tables => {
|
||||
Promise.allSettled(tables.map(t => checksumTable(t))).then(results => {
|
||||
let records = results.filter(r => r.status === "fulfilled").map(r => r.value);
|
||||
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))
|
||||
}).catch(error => reject(error))
|
||||
})
|
||||
}
|
||||
|
||||
CheckDB().then(_ => process.exit(0)).catch(error => { console.error(error); process.exit(1); })
|
||||
@ -20,6 +20,7 @@
|
||||
"configure": "node setup/configure-settings.js",
|
||||
"reset-password": "node setup/reset-password.js",
|
||||
"create-schema": "node setup/create-schema.js",
|
||||
"checksum-db": "node debug/checksum-db.js",
|
||||
"start": "node start.js"
|
||||
},
|
||||
"repository": {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user