requirements.md 4.6 KB

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

  1. WHEN 使用 Homebrew 安装 MySQL 5.7 THEN 系统应成功安装 MySQL 5.7 服务
  2. WHEN MySQL 5.7 安装完成 THEN 系统应能够启动 MySQL 5.7 服务
  3. WHEN MySQL 5.7 服务启动 THEN 系统应能够通过命令行连接到 MySQL 5.7
  4. WHEN 设置 MySQL 5.7 root 密码 THEN 系统应成功保存密码配置
  5. WHEN MySQL 5.7 配置端口 THEN 系统应避免与现有 MySQL 8.0 端口冲突

Requirement 2

User Story: 作为开发者,我想要导出 MySQL 8.0 中的现有数据,以便能够迁移到 MySQL 5.7

Acceptance Criteria

  1. WHEN 执行数据库导出命令 THEN 系统应生成包含所有表结构的 SQL 文件
  2. WHEN 执行数据库导出命令 THEN 系统应生成包含所有表数据的 SQL 文件
  3. WHEN 导出 SQL 文件 THEN 文件应使用 MySQL 5.7 兼容的语法
  4. WHEN 导出完成 THEN 系统应验证导出文件的完整性
  5. IF 导出过程中出现错误 THEN 系统应显示明确的错误信息

Requirement 3

User Story: 作为开发者,我想要在 MySQL 5.7 中创建项目所需的数据库,以便导入数据

Acceptance Criteria

  1. WHEN 连接到 MySQL 5.7 THEN 系统应能够执行创建数据库命令
  2. WHEN 创建数据库 THEN 数据库名称应与项目配置中的名称一致(ruoyi-vue-pro)
  3. WHEN 创建数据库 THEN 系统应设置正确的字符集(utf8mb4)
  4. WHEN 创建数据库 THEN 系统应设置正确的排序规则(utf8mb4_general_ci)
  5. WHEN 数据库创建完成 THEN 系统应能够查询到新创建的数据库

Requirement 4

User Story: 作为开发者,我想要将导出的数据导入到 MySQL 5.7,以便恢复项目数据

Acceptance Criteria

  1. WHEN 执行导入命令 THEN 系统应成功导入所有表结构
  2. WHEN 执行导入命令 THEN 系统应成功导入所有表数据
  3. IF 导入过程中遇到 MySQL 8.0 特有语法 THEN 系统应提供兼容性处理方案
  4. WHEN 导入完成 THEN 系统应验证所有表的记录数与原数据库一致
  5. WHEN 导入完成 THEN 系统应验证关键表的数据完整性

Requirement 5

User Story: 作为开发者,我想要更新项目配置文件,以便项目连接到 MySQL 5.7 数据库

Acceptance Criteria

  1. WHEN 修改 application-dev.yaml THEN 数据库连接 URL 应指向 MySQL 5.7 的端口
  2. WHEN 修改 application-dev.yaml THEN 数据库用户名应与 MySQL 5.7 配置一致
  3. WHEN 修改 application-dev.yaml THEN 数据库密码应与 MySQL 5.7 配置一致
  4. WHEN 修改连接串参数 THEN 系统应移除 MySQL 8.0 特有的参数
  5. WHEN 配置文件修改完成 THEN 系统应保持 YAML 文件格式正确

Requirement 6

User Story: 作为开发者,我想要验证项目能够正常连接和使用 MySQL 5.7,以便确保迁移成功

Acceptance Criteria

  1. WHEN 启动项目后端服务 THEN 系统应成功连接到 MySQL 5.7 数据库
  2. WHEN 项目启动 THEN 系统应能够执行数据库查询操作
  3. WHEN 项目启动 THEN 系统应能够执行数据库写入操作
  4. WHEN 执行项目功能 THEN 所有依赖数据库的功能应正常工作
  5. IF 连接失败 THEN 系统应在日志中显示明确的错误信息

Requirement 7

User Story: 作为开发者,我想要记录 MySQL 5.7 和 MySQL 8.0 的共存配置,以便在需要时可以切换

Acceptance Criteria

  1. WHEN 两个 MySQL 版本共存 THEN 系统应记录各自的端口配置
  2. WHEN 两个 MySQL 版本共存 THEN 系统应记录各自的启动和停止命令
  3. WHEN 两个 MySQL 版本共存 THEN 系统应记录如何切换项目使用的数据库版本
  4. WHEN 需要卸载 MySQL 8.0 THEN 系统应提供完整的卸载步骤
  5. WHEN 文档创建完成 THEN 文档应包含常见问题的解决方案