Commit a8c32565 authored by Your Name's avatar Your Name

Add detailed database initialization logging

- Log database config from aisbf.json at startup
- Convert Pydantic models to dict before passing to DatabaseRegistry
- Fix MySQL password validation (allow empty passwords)
- Add traceback on database init errors
parent 2064ad14
...@@ -2956,8 +2956,8 @@ class DatabaseRegistry: ...@@ -2956,8 +2956,8 @@ class DatabaseRegistry:
# ✅ FIX: Allow MySQL configuration for config database # ✅ FIX: Allow MySQL configuration for config database
elif config_type == 'mysql': elif config_type == 'mysql':
# Validate MySQL configuration is present # Validate MySQL configuration is present
required_mysql_fields = ['mysql_host', 'mysql_port', 'mysql_user', 'mysql_password', 'mysql_database'] required_mysql_fields = ['mysql_host', 'mysql_port', 'mysql_user', 'mysql_database']
missing_fields = [field for field in required_mysql_fields if field not in db_config or not db_config[field]] missing_fields = [field for field in required_mysql_fields if field not in db_config]
if missing_fields: if missing_fields:
logger.warning(f"⚠️ CONFIG DATABASE: MySQL configuration missing fields: {missing_fields}, falling back to SQLite") logger.warning(f"⚠️ CONFIG DATABASE: MySQL configuration missing fields: {missing_fields}, falling back to SQLite")
aisbf_dir = Path.home() / '.aisbf' aisbf_dir = Path.home() / '.aisbf'
......
...@@ -987,9 +987,20 @@ async def startup_event(): ...@@ -987,9 +987,20 @@ async def startup_event():
# Initialize database # Initialize database
try: try:
db_config = config.aisbf.database if config.aisbf and config.aisbf.database else None db_config = config.aisbf.database if config.aisbf and config.aisbf.database else None
if db_config:
logger.info(f"Database config from aisbf.json: type={db_config.type if hasattr(db_config, 'type') else db_config.get('type')}, mysql_host={db_config.mysql_host if hasattr(db_config, 'mysql_host') else db_config.get('mysql_host')}, mysql_database={db_config.mysql_database if hasattr(db_config, 'mysql_database') else db_config.get('mysql_database')}")
# Convert to dict if it's a Pydantic model
if hasattr(db_config, 'model_dump'):
db_config = db_config.model_dump()
elif hasattr(db_config, 'dict'):
db_config = db_config.dict()
else:
logger.warning("No database config found in aisbf.json, using defaults")
DatabaseRegistry.get_config_database(db_config) DatabaseRegistry.get_config_database(db_config)
except Exception as e: except Exception as e:
logger.error(f"Failed to initialize database: {e}") logger.error(f"Failed to initialize database: {e}")
import traceback
logger.error(f"Traceback: {traceback.format_exc()}")
# Continue startup even if database fails # Continue startup even if database fails
# Initialize cache # Initialize cache
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment