From c7ecc3f365801dcaf4ac8d9fac3015e1f8cd5fa5 Mon Sep 17 00:00:00 2001 From: Allan Eising Date: Sun, 22 Jun 2025 18:57:44 +0200 Subject: [PATCH] Don't create the database from the application. Use alembic. --- packages/sshecret-backend/src/sshecret_backend/app.py | 5 +++-- packages/sshecret-backend/src/sshecret_backend/cli.py | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/sshecret-backend/src/sshecret_backend/app.py b/packages/sshecret-backend/src/sshecret_backend/app.py index b312e6a..90b2364 100644 --- a/packages/sshecret-backend/src/sshecret_backend/app.py +++ b/packages/sshecret-backend/src/sshecret_backend/app.py @@ -23,7 +23,7 @@ from .settings import BackendSettings LOG = logging.getLogger(__name__) -def init_backend_app(settings: BackendSettings) -> FastAPI: +def init_backend_app(settings: BackendSettings, create_db: bool = False) -> FastAPI: """Initialize backend app.""" @asynccontextmanager @@ -31,7 +31,8 @@ def init_backend_app(settings: BackendSettings) -> FastAPI: """Create database before starting the server.""" LOG.debug("Running lifespan") engine = get_async_engine(settings.async_db_url) - await init_db_async(engine) + if create_db: + await init_db_async(engine) yield app = FastAPI(lifespan=lifespan) diff --git a/packages/sshecret-backend/src/sshecret_backend/cli.py b/packages/sshecret-backend/src/sshecret_backend/cli.py index c62036a..5954251 100644 --- a/packages/sshecret-backend/src/sshecret_backend/cli.py +++ b/packages/sshecret-backend/src/sshecret_backend/cli.py @@ -21,7 +21,6 @@ from .models import ( ClientAccessPolicy, ClientSecret, SubSystem, - init_db, ) from .settings import BackendSettings @@ -50,7 +49,6 @@ def generate_token( ) -> str: """Generate a token.""" engine = get_engine(settings.db_url) - init_db(engine) with Session(engine) as session: token = create_api_token(session, subsystem) return token @@ -63,7 +61,6 @@ def add_system_tokens(settings: BackendSettings) -> None: return engine = get_engine(settings.db_url) - init_db(engine) tokens: list[tuple[str, SubSystem]] = [] if admin_token := settings.admin_token: tokens.append((admin_token, SubSystem.ADMIN))