Vision ID: Standardize Site Domain and Journal objects with string-only IDs and searchable mapping
This commit is contained in:
24
app/main.py
24
app/main.py
@@ -46,6 +46,14 @@ async def lifespan(app: FastAPI):
|
||||
|
||||
# 2. Bootstrapping Configuration from DB with robust error handling
|
||||
log.info("Bootstrapping Configuration...")
|
||||
|
||||
# Save original settings for fallback
|
||||
orig_db_server = config.settings.DB_SERVER
|
||||
orig_db_user = config.settings.DB_USER
|
||||
orig_db_pass = config.settings.DB_PASS
|
||||
orig_db_name = config.settings.DB_NAME
|
||||
orig_db_port = config.settings.DB_PORT
|
||||
|
||||
try:
|
||||
if bootstrap_db_config(config.settings):
|
||||
log.info("Successfully bootstrapped configuration from database.")
|
||||
@@ -53,13 +61,25 @@ async def lifespan(app: FastAPI):
|
||||
if reconnect_db():
|
||||
log.info("Database connection re-established with production configuration.")
|
||||
else:
|
||||
log.warning("FAILED to re-establish database connection after bootstrap. Falling back to .env settings.")
|
||||
log.warning("FAILED to re-establish database connection after bootstrap. Reverting to .env settings.")
|
||||
config.settings.DB_SERVER = orig_db_server
|
||||
config.settings.DB_USER = orig_db_user
|
||||
config.settings.DB_PASS = orig_db_pass
|
||||
config.settings.DB_NAME = orig_db_name
|
||||
config.settings.DB_PORT = orig_db_port
|
||||
reconnect_db()
|
||||
else:
|
||||
log.warning("System bootstrap from DB returned no results. Using environment defaults.")
|
||||
except Exception as e:
|
||||
log.error(f"Unexpected error during configuration bootstrap: {e}. Falling back to .env settings.")
|
||||
config.settings.DB_SERVER = orig_db_server
|
||||
config.settings.DB_USER = orig_db_user
|
||||
config.settings.DB_PASS = orig_db_pass
|
||||
config.settings.DB_NAME = orig_db_name
|
||||
config.settings.DB_PORT = orig_db_port
|
||||
reconnect_db()
|
||||
|
||||
# 2. Final validation of critical infrastructure
|
||||
# 3. Final validation of critical infrastructure
|
||||
validate_critical_config(config.settings)
|
||||
|
||||
log.info('### **** *** ** * Aether API v4 using FastAPI - Startup Sequence Complete * ** *** **** ###')
|
||||
|
||||
Reference in New Issue
Block a user