From e263239cee622303161b87d7f7aba094ebce5031 Mon Sep 17 00:00:00 2001 From: Automated Action Date: Tue, 3 Jun 2025 14:49:22 +0000 Subject: [PATCH] Fix database path issue to ensure write permissions --- app/core/config.py | 6 ++++-- app/db/session.py | 4 ++++ migrations/env.py | 8 ++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/core/config.py b/app/core/config.py index 4505634..6f08323 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -1,11 +1,13 @@ import os +import tempfile from pathlib import Path from pydantic import field_validator, BaseModel # Get project root directory if '/app/repo' in str(Path.cwd()): - # When running in the container - ROOT_DIR = Path('/app/repo') + # When running in the container, use a temporary directory + # This ensures we have write permissions + ROOT_DIR = Path(tempfile.gettempdir()) else: # When running in development ROOT_DIR = Path(__file__).parent.parent.parent.resolve() diff --git a/app/db/session.py b/app/db/session.py index e4e1200..240164d 100644 --- a/app/db/session.py +++ b/app/db/session.py @@ -1,3 +1,4 @@ +import os from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker @@ -7,6 +8,9 @@ from app.core.config import settings DB_DIR = settings.DB_DIR DB_DIR.mkdir(parents=True, exist_ok=True) +# Ensure the database directory has write permissions +os.chmod(DB_DIR, 0o777) + SQLALCHEMY_DATABASE_URL = settings.SQLALCHEMY_DATABASE_URL engine = create_engine( diff --git a/migrations/env.py b/migrations/env.py index dbe23ec..f25a37c 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -1,5 +1,5 @@ from logging.config import fileConfig - +import os from sqlalchemy import engine_from_config from sqlalchemy import pool from pathlib import Path @@ -67,7 +67,11 @@ def run_migrations_online() -> None: """ # Ensure the DB directory exists - Path(settings.DB_DIR).mkdir(parents=True, exist_ok=True) + db_dir = Path(settings.DB_DIR) + db_dir.mkdir(parents=True, exist_ok=True) + + # Ensure the database directory has write permissions + os.chmod(db_dir, 0o777) connectable = engine_from_config( config.get_section(config.config_ini_section, {}),