diff --git a/backend/app/services/real_trading_service.py b/backend/app/services/real_trading_service.py index 118b850..15320c6 100644 --- a/backend/app/services/real_trading_service.py +++ b/backend/app/services/real_trading_service.py @@ -59,24 +59,32 @@ class RealTradingService: from sqlalchemy import text Base.metadata.create_all(bind=db_service.engine) - # 创建自动交易开关表 + # 创建自动交易开关表(使用简单的文本检查而不是 ORM) db = db_service.get_session() try: - db.execute(text(""" - CREATE TABLE IF NOT EXISTS real_trading_settings ( - key TEXT PRIMARY KEY, - value TEXT NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP - ) - """)) - db.commit() + # 检查表是否存在 + result = db.execute(text(""" + SELECT name FROM sqlite_master WHERE type='table' AND name='real_trading_settings' + """)).fetchone() - # 初始化自动交易开关 - db.execute(text(""" - INSERT OR IGNORE INTO real_trading_settings (key, value) - VALUES ('auto_trading_enabled', '0') - """)) - db.commit() + if not result: + # 表不存在,创建表 + db.execute(text(""" + CREATE TABLE real_trading_settings ( + key TEXT PRIMARY KEY, + value TEXT NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + """)) + db.commit() + + # 初始化自动交易开关 + db.execute(text(""" + INSERT INTO real_trading_settings (key, value) + VALUES ('auto_trading_enabled', '0') + """)) + db.commit() + logger.info("创建实盘交易设置表") except Exception as e: logger.warning(f"创建设置表失败: {e}") db.rollback()