From a8e80ed19db1f62b134dc51e70b5bab6abdf7ea1 Mon Sep 17 00:00:00 2001 From: ahtlon Date: Wed, 29 Jul 2026 18:37:34 +0200 Subject: [PATCH] [main] fix startup when there's no db --- alembic/env.py | 9 +++++---- app/.env.example | 2 +- app/services/database.py | 6 ++++-- app/services/settings.py | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/alembic/env.py b/alembic/env.py index 31c3388..baa2726 100644 --- a/alembic/env.py +++ b/alembic/env.py @@ -11,15 +11,16 @@ config = context.config # Interpret the config file for Python logging. # This line sets up loggers basically. -if config.config_file_name is not None: - fileConfig(config.config_file_name) +#if config.config_file_name is not None: +# fileConfig(config.config_file_name, disable_existing_loggers=False) # add your model's MetaData object here # for 'autogenerate' support # from myapp import mymodel # target_metadata = mymodel.Base.metadata -from app.model.models import Base -target_metadata = Base.metadata +from app.model import models + +target_metadata = models.Base.metadata # other values from the config, defined by the needs of env.py, # can be acquired: diff --git a/app/.env.example b/app/.env.example index 30afee3..49661a2 100644 --- a/app/.env.example +++ b/app/.env.example @@ -8,4 +8,4 @@ SECRET_KEY="8b14d0b447bff7efa24d5019cc59a999786e31f6f865173bbd642bf18de5ad85" #Key for oauth #THESE ARE TESTING KEYS - DO NOT USE IN PROD -SQLALCHEMY_DATABASE_URL="sqlite:///./gatekeeper.db" +SQLALCHEMY_DATABASE_PATH="./gatekeeper.db" diff --git a/app/services/database.py b/app/services/database.py index 68ef002..f1adadc 100644 --- a/app/services/database.py +++ b/app/services/database.py @@ -5,19 +5,21 @@ from sqlmodel import Session, SQLModel, create_engine logger = logging.getLogger(__name__) -SQLALCHEMY_DATABASE_URL = getenv("SQLALCHEMY_DATABASE_URL", "sqlite:///./gatekeeper.db") +SQLALCHEMY_DATABASE_PATH = getenv("SQLALCHEMY_DATABASE_PATH", "./gatekeeper.db") +SQLALCHEMY_DATABASE_URL = "sqlite:///" + SQLALCHEMY_DATABASE_PATH engine = create_engine(SQLALCHEMY_DATABASE_URL) def create_db_and_tables(): - if not path.exists(SQLALCHEMY_DATABASE_URL): + if not path.exists(SQLALCHEMY_DATABASE_PATH): SQLModel.metadata.create_all(engine) from alembic.config import Config from alembic import command alembic_cfg = Config("./alembic.ini") + alembic_cfg.attributes["sqlalchemy.url"] = SQLALCHEMY_DATABASE_URL command.stamp(alembic_cfg, "head") logger.info("Database created and tables initialized.") else: diff --git a/app/services/settings.py b/app/services/settings.py index 9507e82..85a31c2 100644 --- a/app/services/settings.py +++ b/app/services/settings.py @@ -11,7 +11,7 @@ def verify_settings(): "MIFARE_ACL_WRITE_BASE_KEY", ] important_envs = ["SECRET_KEY"] - other_envs = ["SQLALCHEMY_DATABASE_URL"] + other_envs = ["SQLALCHEMY_DATABASE_PATH"] for setting in card_envs: if (setting not in os.environ or setting == "") and not os.getenv( "DISABLE_CARDS" @@ -26,4 +26,4 @@ def verify_settings(): ) for setting in other_envs: if setting not in os.environ: - logger.critical(f"Env var {setting} not set. Continuing with defaults.") + logger.warning(f"Env var {setting} not set. Continuing with defaults.")