43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
const initSqlJs = require('sql.js');
|
|
const fs = require('fs');
|
|
|
|
let db = null;
|
|
const DB_PATH = './ka.db';
|
|
|
|
async function initDb() {
|
|
const SQL = await initSqlJs();
|
|
|
|
console.log('Initializing Database...');
|
|
|
|
// Loading Database if it already exists
|
|
if (fs.existsSync(DB_PATH)) {
|
|
const buffer = fs.readFilySync(DB_PATH);
|
|
db = new SQL.Database(buffer);
|
|
console.log('Database Loaded')
|
|
} else {
|
|
|
|
// Creating a new one if it does not
|
|
console.log('Database not found. Creating new instance...')
|
|
db = new SQL.Database();
|
|
|
|
// Creating Knowledge Article table
|
|
db.run(`
|
|
CREATE TABLE articles (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
ka_number TEXT UNIQUE,
|
|
title TEXT,
|
|
content TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
`);
|
|
|
|
// Saving the created db to file
|
|
const data = db.export();
|
|
fs.writeFileSync(DB_PATH, Buffer.from(data));
|
|
console.log(`Database created at ${DB_PATH}`);
|
|
}
|
|
|
|
return db;
|
|
}
|
|
|
|
module.exports = {initDb}; |