数据存储与数据源配置

MagicTradeBot 管理应用程序 支持多种基于 SQL 的数据库,用于存储和管理关键的交易相关数据。 这种灵活性使用户能够在从轻量级嵌入式数据库到完整生产级关系数据库的各种环境中操作。

📌 存储哪些数据

MagicTradeBot 会将以下结构化数据保存到连接的数据源中:

  • 交易账户: 各交易所的凭证、API 密钥及配置。
  • 交易符号: 与特定交易所或账户关联的币种/交易对。
  • 交易模板: 自定义模板定义,包括策略、风险控制和符号绑定。
  • 交易数据: 实时及历史交易日志和执行数据。
  • K线数据: 自定义的本地构建和优化的K线(蜡烛图)数据,无需依赖第三方供应商。
  • 其他: 日志、系统设置、计划任务及其他运行时关键元数据。

💾 支持的数据源选项

MagicTradeBot 当前支持以下 SQL 数据库引擎:

  • SQLite — 轻量级且内置(默认选项)
  • SQL Server — 全功能企业级关系数据库管理系统(微软 SQL)
  • MySQL — 流行的开源关系数据库管理系统
  • PostgreSQL — 高级开源对象关系数据库系统

⚙️ 配置设置

所有数据库连接均在管理应用程序中的 appsettings.json 文件中配置:

{
  "ConnectionStrings": {
    "SQLLight": "Data Source=Data/MTManagementDB.db",
    "SQLSERVER": "Server=localhost;Database=MagicTrade;User Id=sa;Password=yourpass;",
    "Postge": "Server=localhost;Database=MagicTrade;User Id=pguser;Password=yourpass;",
    "MySQL": "Server=localhost;Database=MagicTrade;User=mtuser;Password=yourpass;"
  },

  "Secrets": {
    // 警告:切勿将真实密钥提交至版本控制!
    "Database": {
      "Host": "",        // 环境变量: Secrets__Database__Host
      "Name": "",        // 环境变量: Secrets__Database__Name
      "User": "",        // 环境变量: Secrets__Database__User
      "Password": ""     // 环境变量: Secrets__Database__Password
    }
  }
}

🔐 安全最佳实践

  • 切勿在生产环境的 appsettings.json 中硬编码凭据。
  • 使用环境变量安全注入密钥。例如:
    • Secrets__Database__User
    • Secrets__Database__Password
  • 在容器化环境中使用密钥管理器Docker secrets
  • 尽可能对静态数据库进行加密。

🧪 默认 SQLite 使用(推荐用于本地开发)

MagicTradeBot 已预集成并预配置 SQLite,无需手动设置即可本地测试。

"SQLLight": "Data Source=Data/MTManagementDB.db"

默认的文件数据库会自动创建在 /Data 文件夹下。

🔧 切换到外部数据库

  1. 在您的 SQL Server、MySQL 或 PostgreSQL 引擎中创建所需数据库。
  2. 更新 appsettings.json 中相应的连接字符串。
  3. 确保所需端口已开放且可访问。
  4. 重启管理应用程序。

🧩 总结

  • MagicTradeBot 将所有交易数据、配置和日志存储在结构化数据库中。
  • 支持从轻量级到企业级的 SQL 引擎。
  • 通过环境变量配置的密钥支持安全且可扩展的部署。
  • 只需修改配置即可轻松切换数据库。

对于高级部署,还支持根据数据库引擎进行备份调度和数据库复制。

📎 Related Topics