需求背景

项目会有分支,环境。

环境又分为开发环境和生产环境等。

通过人为去管理数据库变更是一种很low的办法,易错,相互甩锅,部署执行sql众多.

那么有没有一种固化的流程让大家尽可能减少犯错呢?

数据库设计管理

在我们管理数据库时,依照项目发布版本,tag,环境等建立多个数据库。这些数据库包含了项目启动所必须的环境,是一个纯净的环境。

升级操作

在项目升级时,我们仅需要对数据库版本间进行比对,使用Navicat的数据同步结构同步对两个库进行比对,最终在部署动作时会产生sql语句,最终形成升级sql -> update.sql 文件即可

写在文末

解决工作流上的问题远比写重复性代码更有经济价值.

公用字典表设计

CREATE TABLE `common_dict` (
  `id` int NOT NULL COMMENT '主键id,自增',
  `pid` int NOT NULL DEFAULT '-1' COMMENT '支持树形结构 顶层结构或者没有属性结构为-1',
  `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '字典码类型',
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '字典码的value',
  `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '字典码的key',
  `status` int NOT NULL DEFAULT '1' COMMENT '状态 1启用,0禁用',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_type_code` (`type`,`code`) COMMENT '类型和code进行唯一索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;