diff --git a/backend/db/sqliteDb.js b/backend/db/sqliteDb.js index 81d4ef8..f5be2f6 100644 --- a/backend/db/sqliteDb.js +++ b/backend/db/sqliteDb.js @@ -20,6 +20,21 @@ function getDbPath() { if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } + + // Ensure the file exists before better-sqlite3 opens it. + // This makes container startup resilient when SQLITE_PATH points to + // a persistent volume and database file is not created yet. + if (!fs.existsSync(p)) { + fs.closeSync(fs.openSync(p, 'a')); + } + + try { + fs.accessSync(p, fs.constants.R_OK | fs.constants.W_OK); + } catch (err) { + const details = err && err.message ? err.message : String(err); + throw new Error(`SQLite file is not readable/writable at "${p}": ${details}`); + } + return p; }