This commit is contained in:
aaron 2026-02-15 21:49:18 +08:00
parent 51565a4edf
commit f595e351bb

View File

@ -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()