mrfrys-node-server/utils/dbSetup.js
2020-04-07 09:51:33 +02:00

65 lines
1.8 KiB
JavaScript

const utils = require('../utils/utils.js')
const logger = require('../utils/logger.js')
const dbtools = require('../utils/dbtools.js')
const dbStructPath = '../modules/api/apiDBStruct.json'
const usersDBPath = '../data/dbs/users.db'
const uuidv4 = require('uuid/v4') // TODO: deprecated, but imports are not supported
let authDB
console.clear()
CreateDB()
function CreateDB () {
const dbStruct = utils.ReadJSON(dbStructPath)
authDB = dbtools.GetDB(usersDBPath)
Object.keys(dbStruct).forEach((tableName) => {
const tableData = dbStruct[tableName]
dbtools.CreateTable(authDB, tableName, tableData.tableStruct, tableData.foreignKey)
})
try {
const uids = utils.ReadFile('../dbUsers/keys').split('\n')
uids.forEach((cid, i) => {
logger.Log(`[ ${i} / ${uids.length} ]`)
try {
dbtools.Insert(authDB, 'users', {
pw: uuidv4(),
oldCID: cid
})
} catch (e) {
logger.Log('Error during inserting', logger.GetColor('redbg'))
console.error(e)
}
})
} catch (e) {
console.error(e)
}
const dir = `./dbSetupResult/${GetDateString().replace(/ /g, '_')}`
utils.CreatePath(dir)
Object.keys(dbStruct).forEach((key) => {
const path = `${dir}/${key}.json`
logger.Log(`Writing ${path}...`)
utils.WriteFile(JSON.stringify({
tableInfo: dbtools.TableInfo(authDB, key),
tableRows: dbtools.SelectAll(authDB, key)
}), path)
})
logger.Log('Done')
}
function GetDateString () {
const m = new Date()
const d = m.getFullYear() + '-' +
('0' + (m.getMonth() + 1)).slice(-2) + '-' +
('0' + m.getDate()).slice(-2) + ' ' +
('0' + m.getHours()).slice(-2) + ':' +
('0' + m.getMinutes()).slice(-2) + ':' +
('0' + m.getSeconds()).slice(-2)
return d
}