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