33 lines
903 B
JavaScript
33 lines
903 B
JavaScript
const fs = require("fs");
|
|
const Database = require("better-sqlite3");
|
|
const path = require("path");
|
|
const { Umzug, JSONStorage } = require('umzug');
|
|
const filepath = "./data/minzbot.db";
|
|
|
|
async function createDbConnection() {
|
|
const dir = path.dirname(filepath);
|
|
if (!fs.existsSync(dir)) {
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
}
|
|
|
|
const db = new Database(filepath, { verbose: console.log });
|
|
|
|
await runMigrations(db);
|
|
|
|
console.log("[DATABASE] Connection with better-sqlite3 established");
|
|
return db;
|
|
}
|
|
|
|
async function runMigrations(db) {
|
|
const umzug = new Umzug({
|
|
migrations: { glob: 'migrations/*.js' },
|
|
context: db,
|
|
storage: new JSONStorage({ path: './data/migrations.json' }),
|
|
logger: console,
|
|
});
|
|
|
|
await umzug.up();
|
|
console.log('[DATABASE] Migrations applied successfully');
|
|
}
|
|
|
|
module.exports = createDbConnection; |