Requirements Document
Introduction
本需求文档描述将项目从 MySQL 8.0 降级到 MySQL 5.7 的完整过程。由于项目中的某些插件需要使用 MySQL 5.7,需要在本地环境安装 MySQL 5.7,并将项目配置和数据迁移到新的数据库版本。
Glossary
- MySQL 5.7: 目标数据库版本,项目插件所需的数据库版本
- MySQL 8.0: 当前使用的数据库版本
- Homebrew: macOS 系统的包管理工具
- 数据迁移: 将现有数据从 MySQL 8.0 导出并导入到 MySQL 5.7 的过程
- 项目配置: application-dev.yaml 和 application.yaml 中的数据库连接配置
- 数据库连接串: JDBC URL,用于连接数据库的字符串
Requirements
Requirement 1
User Story: 作为开发者,我想要在 macOS 系统上安装 MySQL 5.7,以便项目插件能够正常运行
Acceptance Criteria
- WHEN 使用 Homebrew 安装 MySQL 5.7 THEN 系统应成功安装 MySQL 5.7 服务
- WHEN MySQL 5.7 安装完成 THEN 系统应能够启动 MySQL 5.7 服务
- WHEN MySQL 5.7 服务启动 THEN 系统应能够通过命令行连接到 MySQL 5.7
- WHEN 设置 MySQL 5.7 root 密码 THEN 系统应成功保存密码配置
- WHEN MySQL 5.7 配置端口 THEN 系统应避免与现有 MySQL 8.0 端口冲突
Requirement 2
User Story: 作为开发者,我想要导出 MySQL 8.0 中的现有数据,以便能够迁移到 MySQL 5.7
Acceptance Criteria
- WHEN 执行数据库导出命令 THEN 系统应生成包含所有表结构的 SQL 文件
- WHEN 执行数据库导出命令 THEN 系统应生成包含所有表数据的 SQL 文件
- WHEN 导出 SQL 文件 THEN 文件应使用 MySQL 5.7 兼容的语法
- WHEN 导出完成 THEN 系统应验证导出文件的完整性
- IF 导出过程中出现错误 THEN 系统应显示明确的错误信息
Requirement 3
User Story: 作为开发者,我想要在 MySQL 5.7 中创建项目所需的数据库,以便导入数据
Acceptance Criteria
- WHEN 连接到 MySQL 5.7 THEN 系统应能够执行创建数据库命令
- WHEN 创建数据库 THEN 数据库名称应与项目配置中的名称一致(ruoyi-vue-pro)
- WHEN 创建数据库 THEN 系统应设置正确的字符集(utf8mb4)
- WHEN 创建数据库 THEN 系统应设置正确的排序规则(utf8mb4_general_ci)
- WHEN 数据库创建完成 THEN 系统应能够查询到新创建的数据库
Requirement 4
User Story: 作为开发者,我想要将导出的数据导入到 MySQL 5.7,以便恢复项目数据
Acceptance Criteria
- WHEN 执行导入命令 THEN 系统应成功导入所有表结构
- WHEN 执行导入命令 THEN 系统应成功导入所有表数据
- IF 导入过程中遇到 MySQL 8.0 特有语法 THEN 系统应提供兼容性处理方案
- WHEN 导入完成 THEN 系统应验证所有表的记录数与原数据库一致
- WHEN 导入完成 THEN 系统应验证关键表的数据完整性
Requirement 5
User Story: 作为开发者,我想要更新项目配置文件,以便项目连接到 MySQL 5.7 数据库
Acceptance Criteria
- WHEN 修改 application-dev.yaml THEN 数据库连接 URL 应指向 MySQL 5.7 的端口
- WHEN 修改 application-dev.yaml THEN 数据库用户名应与 MySQL 5.7 配置一致
- WHEN 修改 application-dev.yaml THEN 数据库密码应与 MySQL 5.7 配置一致
- WHEN 修改连接串参数 THEN 系统应移除 MySQL 8.0 特有的参数
- WHEN 配置文件修改完成 THEN 系统应保持 YAML 文件格式正确
Requirement 6
User Story: 作为开发者,我想要验证项目能够正常连接和使用 MySQL 5.7,以便确保迁移成功
Acceptance Criteria
- WHEN 启动项目后端服务 THEN 系统应成功连接到 MySQL 5.7 数据库
- WHEN 项目启动 THEN 系统应能够执行数据库查询操作
- WHEN 项目启动 THEN 系统应能够执行数据库写入操作
- WHEN 执行项目功能 THEN 所有依赖数据库的功能应正常工作
- IF 连接失败 THEN 系统应在日志中显示明确的错误信息
Requirement 7
User Story: 作为开发者,我想要记录 MySQL 5.7 和 MySQL 8.0 的共存配置,以便在需要时可以切换
Acceptance Criteria
- WHEN 两个 MySQL 版本共存 THEN 系统应记录各自的端口配置
- WHEN 两个 MySQL 版本共存 THEN 系统应记录各自的启动和停止命令
- WHEN 两个 MySQL 版本共存 THEN 系统应记录如何切换项目使用的数据库版本
- WHEN 需要卸载 MySQL 8.0 THEN 系统应提供完整的卸载步骤
- WHEN 文档创建完成 THEN 文档应包含常见问题的解决方案