You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.1 KiB
31 lines
1.1 KiB
"use strict";
|
|
let mysql = require("promise-mysql");
|
|
let fs = require("fs");
|
|
let config = fs.readFileSync("../config.json");
|
|
let sql_schema = fs.readFileSync("config_entries.json");
|
|
let async = require("async");
|
|
|
|
global.config = JSON.parse(config);
|
|
global.mysql = mysql.createPool(global.config.mysql);
|
|
global.schema = JSON.parse(sql_schema);
|
|
|
|
// Config Table Layout
|
|
// <module>.<item>
|
|
|
|
let loopCount = 0;
|
|
let updatedCount = 0;
|
|
async.eachSeries(global.schema, function(entry, callback){
|
|
global.mysql.query("SELECT * FROM config WHERE module = ? AND item = ?", [entry.module, entry.item]).then(function(rows){
|
|
loopCount += 1;
|
|
if (rows.length > 0){
|
|
return callback();
|
|
}
|
|
updatedCount += 1;
|
|
global.mysql.query("INSERT INTO config (module, item, item_value, item_type, Item_desc) VALUES (?, ?, ?, ?, ?)", [entry.module, entry.item, entry.item_value, entry.item_type, entry.Item_desc]).then(function(){
|
|
return callback();
|
|
});
|
|
});
|
|
}, function(){
|
|
console.log("Updated SQL schema with "+updatedCount+" new rows! Exiting!");
|
|
process.exit();
|
|
}); |