From 5246770a3a9a32ecab4eeefdb9620d32d3e5683c Mon Sep 17 00:00:00 2001 From: Pouzor Date: Mon, 9 Mar 2026 22:38:26 +0100 Subject: [PATCH] fix: ensure data directory exists before SQLite engine init On fresh installs the data/ dir may not exist, causing SQLite to create a stub file without write permissions. mkdir(parents=True, exist_ok=True) runs at import time before any DB operation. Also add data/.gitignore to prevent homelab.db from ever being committed. --- backend/app/db/database.py | 4 ++++ backend/data/.gitignore | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 backend/data/.gitignore diff --git a/backend/app/db/database.py b/backend/app/db/database.py index 579fa8b..dae56ac 100644 --- a/backend/app/db/database.py +++ b/backend/app/db/database.py @@ -1,11 +1,15 @@ from collections.abc import AsyncGenerator from contextlib import suppress +from pathlib import Path from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine from sqlalchemy.orm import DeclarativeBase from app.core.config import settings +# Ensure the data directory exists before SQLite tries to open the file +Path(settings.sqlite_path).parent.mkdir(parents=True, exist_ok=True) + engine = create_async_engine( f"sqlite+aiosqlite:///{settings.sqlite_path}", echo=False, diff --git a/backend/data/.gitignore b/backend/data/.gitignore new file mode 100644 index 0000000..ec5328c --- /dev/null +++ b/backend/data/.gitignore @@ -0,0 +1,4 @@ +*.db +*.db-shm +*.db-wal +scan_config.json