From 28543f5979727d4a28afc8bf738d368c77ad6251 Mon Sep 17 00:00:00 2001 From: ZHENG XIAOYI Date: Fri, 6 Feb 2026 15:22:15 +0800 Subject: [PATCH] fix: auto-create database directory using fs and path --- scripts/init-db.ts | 7 +++++++ utils/database.ts | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/scripts/init-db.ts b/scripts/init-db.ts index 5d46621..5d11b5e 100644 --- a/scripts/init-db.ts +++ b/scripts/init-db.ts @@ -1,8 +1,15 @@ import Database from 'better-sqlite3'; import bcrypt from 'bcryptjs'; import path from 'path'; +import fs from 'fs'; const dbPath = path.join(process.cwd(), 'data/database.sqlite'); +const dbDir = path.dirname(dbPath); + +if (!fs.existsSync(dbDir)) { + fs.mkdirSync(dbDir, { recursive: true }); +} + const db = new Database(dbPath, { verbose: console.log }); const createTables = (): void => { diff --git a/utils/database.ts b/utils/database.ts index eaeece2..91d4f41 100644 --- a/utils/database.ts +++ b/utils/database.ts @@ -1,5 +1,6 @@ import Database from 'better-sqlite3'; import path from 'path'; +import fs from 'fs'; class DatabaseWrapper { private db: Database.Database; @@ -7,6 +8,12 @@ class DatabaseWrapper { constructor() { this.dbPath = process.env.DB_PATH || path.join(process.cwd(), 'data/database.sqlite'); + const dbDir = path.dirname(this.dbPath); + + if (!fs.existsSync(dbDir)) { + fs.mkdirSync(dbDir, { recursive: true }); + } + this.db = new Database(this.dbPath, { verbose: console.log }); }