Skip to content

数据库契约

TradingCopilot 根据 GORM 持久化模型初始化当前逻辑 schema。生产目标是 PostgreSQL/TimescaleDB,SQLite 主要用于本地开发和测试。

数据边界

主要表

领域
认证和设置admin_users, secrets, app_settings
AIai_providers, ai_provider_models, agent_roles, prompt_templates
研究团队research_teams, research_team_roles
行情market_symbols, daily_bars, realtime_quotes, watchlist_items
消息message_subscriptions, message_subscription_research_teams, message_subscription_filters, ingested_messages, platform_adapters
Telegram 兼容telegram_channels, telegram_messages
会议meetings, meeting_events, meeting_references, tool_call_logs
唤醒计划wake_plans
模拟交易risk_configs, paper_accounts, paper_orders, paper_positions, paper_fills, paper_equity_snapshots

关键关系

关系说明
研究团队 → 团队角色会议运行器按团队加载角色
研究团队 → 自选列表自选列表按团队隔离
消息订阅 → 研究团队一个订阅可绑定多个团队
消息订阅 → 过滤器每个订阅绑定一个可复用过滤器
摄取消息 → 会议meeting 决策可为 message/team 创建会议
研究团队 → 模拟账户一个账户最多绑定一个团队
模拟账户 → 风险配置未绑定风险配置时订单执行会拒绝

存储说明

  • 密钥保存在 secrets.encrypted_value,以加密形式存储。
  • 灵活载荷使用 JSON 列,包括角色能力、应用设置、行情、会议载荷和唤醒触发配置。
  • 消息相关表名与提供方无关,即使运行时来源是 Telegram 或 RSS/Atom。
  • ingested_messages.source_message_id 是与提供方无关的字符串。
  • message_subscriptions 保存轮询状态,例如上次采集时间、下次采集时间和上次采集错误。

重要枚举

类型
会议状态queued, running, completed, failed, cancelled
会议事件system, role_message, tool_call, tool_result, conclusion, error
消息过滤决策ignore, observe, meeting
唤醒触发类型time, indicator, event
唤醒计划状态active, paused, fired, cancelled
订单方向buy, sell
订单状态suggested, pending, filled, rejected, cancelled, expired

运维注意

  • 生产数据库必须纳入备份。
  • 升级前先备份数据库和 env/app.env
  • 不要直接在生产数据库手工修改密钥、订单、会议或消息状态。
  • 如果必须执行修复 SQL,应先在备份或测试环境复现。

变更检查清单

数据库契约变更时同步:

  • GORM 模型。
  • 迁移逻辑。
  • schema 初始化测试。
  • API 和前端展示。
  • 本文档。

TradingCopilot 不提供投资建议,所有内容仅用于研究、测试和学习。