Excel 与 MySQL 数据库结构同步实践

发布于:2025-03-01 ⋅ 阅读:(8) ⋅ 点赞:(0)

引言

在小组开发过程中,数据库表结构的更改是最频繁且最容易出错的环节。一个小问题可能会导致整个团队浪费大量时间进行排查和修复。因此,数据库表结构的更新需要采用严格的管理流程,禁止随意更改,确保所有修改都通过统一渠道进行处理。

为了解决这一问题,我们设计了一种方法:通过 Excel 统一管理 MySQL 数据库结构的更新变动,然后使用 excelToMysql 工具自动执行 Excel 上的更新。这样做的目的是保证数据库结构变更的可追溯性和一致性,减少人为失误,提高开发效率。


为什么选择 Excel 作为数据库结构管理工具?

  1. 清晰直观:Excel 以表格形式管理数据库表结构,所有字段及其属性一目了然。
  2. 版本控制:数据库表结构的变更可以通过 Excel 文件版本管理,确保每次修改都有记录。
  3. 降低误操作风险:开发团队成员无法直接修改数据库结构,必须通过 Excel 进行更改,避免误操作。
  4. 统一规范:Excel 规范了表结构的变更格式,避免不同人员对字段类型、命名方式等理解不同,导致不一致。

Excel 表结构管理方案

我们在 Excel 中维护数据库表结构,主要包含以下字段,表的每个字段顺序可调整:

表名称 字段名称 数据类型 主键 约束 允许为空 默认值 备注
users id INT AUTO_INCREMENT 用户 ID
users name VARCHAR(255) UNIQUE 用户名
users email VARCHAR(255) UNIQUE 邮箱
orders id INT AUTO_INCREMENT 订单 ID
orders user_id INT FOREIGN KEY (users.id) 关联用户 ID

Excel 的每一行表示数据库中的一个字段,每一列存储字段的属性信息,如数据类型、主键、约束条件等。这样,每次修改数据库结构时,都可以通过 Excel 进行维护,并确保所有修改都是可追溯的。

下面是Excel模板截图(概览页、表页),首页是表概览,可以点击跳转到表:


excelToMysql 工具的作用

excelToMysql 是一个 Go 语言编写的工具,它的作用是:

  1. 读取 Excel 文件,解析数据库表结构的更新内容。
  2. 对比 MySQL 现有结构,找出新增、修改或删除的字段。
  3. 生成 SQL 语句,自动执行数据库结构更新。
  4. 支持反向导出,可以从 MySQL 数据库结构生成 Excel 文件,确保数据同步。

具体实践流程

  1. 产品团队/数据库管理员更新 Excel 文件

    • 所有数据库结构的更改必须由产品团队或数据库管理员修改 Excel 文件,并提交到版本管理系统(如 Git)。
  2. 开发团队拉取最新的 Excel 文件

    • 开发人员在修改数据库相关代码前,先拉取最新版本的 Excel 文件,确保使用的是最新的数据库结构。
  3. 使用 excelToMysql 工具更新数据库结构

    • 运行 excelToMysql 工具,它会自动读取 Excel 文件并更新 MySQL 数据库。
  4. 执行数据库变更审核

    • 重大变更(如删除表、修改主键等)需要额外审核,确保不会影响现有数据。
  5. 处理已有测试数据的字段新增问题

    • 在测试环境中,如果数据库已存在数据而新增字段,始终只允许单个字段的修改或添加
    • 对于新增字段,默认情况下底下数据为空,后续由脚本填充或在 Excel 中指定默认值。
    • 这样可以确保数据库变更的兼容性,避免因字段新增导致测试数据异常。
  6. 团队成员开发并测试

    • 由于数据库结构变更是统一管理的,团队成员可以专注于业务开发,而不用担心数据库结构不一致的问题。

结论

通过 Excel 统一管理 MySQL 数据库结构 并使用 excelToMysql 工具 执行更新,我们实现了数据库结构变更的标准化、可追溯性和高效性。

这种方式不仅可以减少因数据库结构变更带来的问题,还可以提高团队协作效率,确保所有开发人员始终使用最新的数据库结构。

希望本篇文章能为团队协作开发提供有益的实践参考!