This commit is contained in:
mrfry 2021-05-26 19:03:05 +02:00
parent 106bd88f17
commit b0fad8d4a2
3 changed files with 70 additions and 56 deletions

View file

@ -0,0 +1,44 @@
{
"msgs": {
"tableStruct": {
"sender": {
"type": "integer",
"notNull": true
},
"reciever": {
"type": "integer",
"notNull": true
},
"msg": {
"type": "text"
},
"date": {
"type": "integer"
},
"unread": {
"type": "integer",
"defaultZero": true
}
},
"foreignKey": [
{
"keysFrom": [
"reciever"
],
"table": "users",
"keysTo": [
"id"
]
},
{
"keysFrom": [
"sender"
],
"table": "users",
"keysTo": [
"id"
]
}
]
}
}

View file

@ -1,71 +1,41 @@
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 { v4: uuidv4 } = require('uuid')
const utils = require('../../dist/utils/utils.js').default // eslint-disable-line
const logger = require('../../dist/utils/logger.js').default // eslint-disable-line
const dbtools = require('../../dist/utils/dbtools.js').default // eslint-disable-line
const { v4: uuidv4 } = require('uuid') // eslint-disable-line
let authDB
const dbStructPaths = [
{ structPath: '../modules/api/usersDBStruct.json', name: 'users.db' },
{ structPath: '../modules/api/msgsDbStruct.json', name: 'msgs.db' },
]
console.clear()
CreateDB()
dbStructPaths.forEach((data) => {
const { structPath, name } = data
createDB(structPath, name)
})
authDB.close()
function CreateDB() {
const dbStruct = utils.ReadJSON(dbStructPath)
// authDB = dbtools.GetDB(':memory:')
authDB = dbtools.GetDB(usersDBPath)
authDB.pragma('synchronous = OFF')
function createDB(path, name) {
const dbStruct = utils.ReadJSON(path)
const db = dbtools.GetDB(`./${name}`)
db.pragma('synchronous = OFF')
Object.keys(dbStruct).forEach((tableName) => {
const tableData = dbStruct[tableName]
dbtools.CreateTable(
authDB,
db,
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(),
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
)
})
printDb(db, dbStruct)
db.close()
logger.Log('Done')
}
function printDb(db, dbStruct) {
Object.keys(dbStruct).forEach((key) => {
console.log(dbtools.TableInfo(db, key))
console.log(dbtools.SelectAll(db, key))
})
}