""" 数据库初始化工具 """ from sqlalchemy import text from loguru import logger from app.models.database import engine, SessionLocal from app.models.contact import Contact from app.models.conversation import Conversation def init_database(): """初始化数据库""" try: # 测试数据库连接 with engine.connect() as conn: result = conn.execute(text("SELECT 1")) logger.info("数据库连接测试成功") # 创建所有表 Contact.metadata.create_all(bind=engine) Conversation.metadata.create_all(bind=engine) logger.info("数据库表创建成功") return True except Exception as e: logger.error(f"数据库初始化失败: {str(e)}") return False def check_database_health(): """检查数据库健康状态""" try: db = SessionLocal() # 测试查询 contact_count = db.query(Contact).count() conversation_count = db.query(Conversation).count() db.close() logger.info(f"数据库健康检查通过: contacts={contact_count}, conversations={conversation_count}") return True except Exception as e: logger.error(f"数据库健康检查失败: {str(e)}") return False if __name__ == "__main__": # 直接运行此文件可以初始化数据库 init_database()