mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-01 17:17:24 -04:00
fix: use closure to capture db_path in lifespan context manager
- Fix lifespan function to access db_path from create_app scope via closure - Prevents "no such table: jobs" error by ensuring database initialization runs - Previous version tried to access app.state.db_path before it was set The issue was that app.state is set after FastAPI instantiation, but the lifespan function needs the db_path during startup. Using closure allows the lifespan function to capture db_path from the create_app function scope.
This commit is contained in:
@@ -134,15 +134,15 @@ def create_app(
|
||||
from tools.deployment_config import is_dev_mode, get_db_path
|
||||
from api.database import initialize_dev_database, initialize_database
|
||||
|
||||
# Startup
|
||||
# Startup - use closure to access db_path from create_app scope
|
||||
if is_dev_mode():
|
||||
# Initialize dev database (reset unless PRESERVE_DEV_DATA=true)
|
||||
dev_db_path = get_db_path(app.state.db_path)
|
||||
dev_db_path = get_db_path(db_path)
|
||||
initialize_dev_database(dev_db_path)
|
||||
log_dev_mode_startup_warning()
|
||||
else:
|
||||
# Ensure production database schema exists
|
||||
initialize_database(app.state.db_path)
|
||||
initialize_database(db_path)
|
||||
|
||||
yield
|
||||
|
||||
|
||||
Reference in New Issue
Block a user