mrfrys-node-server/utils/dbSetup.js

62 lines
1.7 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()
authDB.close()
function CreateDB () {
const dbStruct = utils.ReadJSON(dbStructPath)
// authDB = dbtools.GetDB(':memory:')
authDB = dbtools.GetDB(usersDBPath)
authDB.pragma('synchronous = OFF')
// Object.keys(dbStruct).forEach((tableName) => {
// const tableData = dbStruct[tableName]
// dbtools.CreateTable(authDB, tableName, tableData.tableStruct, tableData.foreignKey)
// })
try {
if (utils.FileExists('./ids')) {
const uids = utils.ReadFile('./ids').split('\n')
uids.forEach((cid, i) => {
if (!cid) { return }
logger.Log(`[ ${i} / ${uids.length} ]`)
try {
dbtools.Insert(authDB, 'users', {
pw: uuidv4(),
oldCID: cid,
avaiblePWRequests: 4,
created: utils.GetDateString()
})
} catch (e) {
logger.Log('Error during inserting', logger.GetColor('redbg'))
console.error(e)
}
})
}
} catch (e) {
console.error(e)
}
const dir = `./dbSetupResult/${utils.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')
}