stock/create_tables.py

66 lines
2.0 KiB
Python

"""
手动创建数据库表结构脚本
"""
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()