2025-11-24 14:20:32 -06:00

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};