mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Db setup
This commit is contained in:
parent
106bd88f17
commit
b0fad8d4a2
3 changed files with 70 additions and 56 deletions
44
src/modules/api/msgsDbStruct.json
Normal file
44
src/modules/api/msgsDbStruct.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,71 +1,41 @@
|
||||||
const utils = require('../utils/utils.js')
|
const utils = require('../../dist/utils/utils.js').default // eslint-disable-line
|
||||||
const logger = require('../utils/logger.js')
|
const logger = require('../../dist/utils/logger.js').default // eslint-disable-line
|
||||||
const dbtools = require('../utils/dbtools.js')
|
const dbtools = require('../../dist/utils/dbtools.js').default // eslint-disable-line
|
||||||
const dbStructPath = '../modules/api/apiDBStruct.json'
|
const { v4: uuidv4 } = require('uuid') // eslint-disable-line
|
||||||
const usersDBPath = '../data/dbs/users.db'
|
|
||||||
const { v4: uuidv4 } = require('uuid')
|
|
||||||
|
|
||||||
let authDB
|
const dbStructPaths = [
|
||||||
|
{ structPath: '../modules/api/usersDBStruct.json', name: 'users.db' },
|
||||||
|
{ structPath: '../modules/api/msgsDbStruct.json', name: 'msgs.db' },
|
||||||
|
]
|
||||||
|
|
||||||
console.clear()
|
dbStructPaths.forEach((data) => {
|
||||||
CreateDB()
|
const { structPath, name } = data
|
||||||
|
createDB(structPath, name)
|
||||||
|
})
|
||||||
|
|
||||||
authDB.close()
|
function createDB(path, name) {
|
||||||
|
const dbStruct = utils.ReadJSON(path)
|
||||||
function CreateDB() {
|
const db = dbtools.GetDB(`./${name}`)
|
||||||
const dbStruct = utils.ReadJSON(dbStructPath)
|
db.pragma('synchronous = OFF')
|
||||||
// authDB = dbtools.GetDB(':memory:')
|
|
||||||
authDB = dbtools.GetDB(usersDBPath)
|
|
||||||
authDB.pragma('synchronous = OFF')
|
|
||||||
|
|
||||||
Object.keys(dbStruct).forEach((tableName) => {
|
Object.keys(dbStruct).forEach((tableName) => {
|
||||||
const tableData = dbStruct[tableName]
|
const tableData = dbStruct[tableName]
|
||||||
dbtools.CreateTable(
|
dbtools.CreateTable(
|
||||||
authDB,
|
db,
|
||||||
tableName,
|
tableName,
|
||||||
tableData.tableStruct,
|
tableData.tableStruct,
|
||||||
tableData.foreignKey
|
tableData.foreignKey
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
printDb(db, dbStruct)
|
||||||
try {
|
db.close()
|
||||||
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
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
logger.Log('Done')
|
logger.Log('Done')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function printDb(db, dbStruct) {
|
||||||
|
Object.keys(dbStruct).forEach((key) => {
|
||||||
|
console.log(dbtools.TableInfo(db, key))
|
||||||
|
console.log(dbtools.SelectAll(db, key))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue