| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import Database from 'better-sqlite3';
- import config from '../config.js';
- import path from 'path';
- import { fileURLToPath } from 'url';
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
- const PROJECT_ROOT = path.resolve(__dirname, '../../');
- const DB_PATH = path.join(PROJECT_ROOT, 'data', config.database.sqlite3.filename);
- let db = null;
- export function getSqlite3() {
- if (db) return db;
- const dbConfig = config.database.sqlite3;
- db = new Database(DB_PATH, {
- fileMustExist: dbConfig.fileMustExist,
- readonly: dbConfig.readonly,
- timeout: dbConfig.timeout
- });
-
- db.pragma(`foreign_keys = ${dbConfig.performance.foreignKeys ? 'ON' : 'OFF'}`);
- db.pragma(`journal_mode = ${dbConfig.performance.journalMode}`);
- db.pragma(`synchronous = ${dbConfig.performance.synchronous}`);
- db.pragma(`temp_store = ${dbConfig.performance.tempStore}`);
- return db;
- }
- export function closeSqlite3() {
- if (db) {
- try {
- db.close();
- db = null;
- } catch (err) {
- throw err;
- }
- }
- }
|