You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buffer_platform/openspec/specs/mysql-persistence/spec.md

1.7 KiB

ADDED Requirements

Requirement: MySQL 连接管理

系统应当提供 MySQL 连接管理能力,包括连接初始化、连接池管理和表结构初始化。

Scenario: MySQL 连接初始化成功

  • WHEN 应用启动且 MySQL 配置有效
  • THEN 系统成功建立 MySQL 连接并创建必要的表结构

Scenario: MySQL 连接初始化失败

  • WHEN 应用启动但 MySQL 服务不可用
  • THEN 系统输出错误日志并标记 MySQL 为不可用状态,但不阻止应用启动

Requirement: 行情数据持久化存储

系统应当使用 MySQL 作为行情数据的主要持久化存储,替代 SQLite。

Scenario: 行情数据写入 MySQL

  • WHEN 刷新接口接收到行情数据更新请求
  • THEN 系统将数据写入 MySQL 的 market_data

Scenario: 行情数据从 MySQL 读取

  • WHEN Redis 缓存未命中且 MySQL 可用
  • THEN 系统从 MySQL 读取行情数据并返回

Requirement: MySQL 表结构迁移

系统应当提供从 SQLite 到 MySQL 的数据迁移能力,保证历史数据不丢失。

Scenario: 首次启动数据迁移

  • WHEN 应用首次启动且 MySQL 可用但表为空
  • THEN 系统从 SQLite 读取历史数据并迁移到 MySQL

Scenario: 迁移完成

  • WHEN 数据迁移完成
  • THEN 系统输出迁移成功日志,后续读写直接操作 MySQL

Requirement: MySQL 事务支持

系统应当使用 MySQL 事务保证数据写入的原子性和一致性。

Scenario: 批量写入事务

  • WHEN 刷新接口需要写入多个品种的行情数据
  • THEN 系统使用事务保证所有数据要么全部写入成功,要么全部回滚