mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-12 05:27: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 tools.deployment_config import is_dev_mode, get_db_path
|
||||||
from api.database import initialize_dev_database, initialize_database
|
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():
|
if is_dev_mode():
|
||||||
# Initialize dev database (reset unless PRESERVE_DEV_DATA=true)
|
# 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)
|
initialize_dev_database(dev_db_path)
|
||||||
log_dev_mode_startup_warning()
|
log_dev_mode_startup_warning()
|
||||||
else:
|
else:
|
||||||
# Ensure production database schema exists
|
# Ensure production database schema exists
|
||||||
initialize_database(app.state.db_path)
|
initialize_database(db_path)
|
||||||
|
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user