""" 手动创建数据库表结构脚本 """ import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from src.storage.database import db_manager from sqlalchemy import text import logging # 配置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) def create_database_tables(): """创建数据库表结构""" try: # 获取数据库会话 session = db_manager.get_session() logger.info("数据库连接成功") # 检查数据库是否存在 result = session.execute(text('SHOW DATABASES LIKE \'stock_analysis\'')) db_exists = result.fetchone() if not db_exists: logger.info("创建数据库 stock_analysis") session.execute(text('CREATE DATABASE stock_analysis')) # 使用数据库 session.execute(text('USE stock_analysis')) # 检查表是否存在 result = session.execute(text('SHOW TABLES')) existing_tables = [row[0] for row in result.fetchall()] logger.info(f"现有表: {existing_tables}") # 如果表不存在,创建表结构 if not existing_tables: logger.info("开始创建表结构...") # 创建表结构 db_manager.create_tables() logger.info("表结构创建完成") # 验证表是否创建成功 result = session.execute(text('SHOW TABLES')) new_tables = [row[0] for row in result.fetchall()] logger.info(f"新创建的表: {new_tables}") else: logger.info("表结构已存在") session.close() logger.info("数据库表结构检查完成") except Exception as e: logger.error(f"创建表结构失败: {str(e)}") raise if __name__ == "__main__": create_database_tables()