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('../dbUsers/keys')) { const uids = utils.ReadFile('../dbUsers/keys').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') }