## 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** 系统使用事务保证所有数据要么全部写入成功,要么全部回滚