From f595e351bb16b0bdb973146b009925d0cc9b749f Mon Sep 17 00:00:00 2001 From: aaron <> Date: Sun, 15 Feb 2026 21:49:18 +0800 Subject: [PATCH] update --- backend/app/services/paper_trading_service.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/backend/app/services/paper_trading_service.py b/backend/app/services/paper_trading_service.py index 71da12a..b5c4105 100644 --- a/backend/app/services/paper_trading_service.py +++ b/backend/app/services/paper_trading_service.py @@ -36,11 +36,28 @@ class PaperTradingService: logger.info(f"模拟交易服务初始化完成(自动平反向持仓: {'启用' if self.auto_close_opposite else '禁用'},保本止损阈值: {self.breakeven_threshold}%)") def _ensure_table_exists(self): - """确保数据表已创建""" + """确保数据表已创建,并迁移新字段""" from app.models.paper_trading import PaperOrder from app.models.database import Base + from sqlalchemy import text Base.metadata.create_all(bind=db_service.engine) + # 检查并添加新字段 breakeven_triggered + db = db_service.get_session() + try: + # 尝试查询新字段,如果失败则添加 + db.execute(text("SELECT breakeven_triggered FROM paper_orders LIMIT 1")) + except Exception: + try: + db.execute(text("ALTER TABLE paper_orders ADD COLUMN breakeven_triggered INTEGER DEFAULT 0")) + db.commit() + logger.info("数据库迁移: 添加 breakeven_triggered 字段") + except Exception as e: + logger.warning(f"添加 breakeven_triggered 字段失败(可能已存在): {e}") + db.rollback() + finally: + db.close() + def _load_active_orders(self): """从数据库加载活跃订单到内存""" db = db_service.get_session()