需求背景
项目会有分支,环境。
环境又分为开发环境和生产环境等。
通过人为去管理数据库变更是一种很low的办法,易错,相互甩锅,部署执行sql众多.
那么有没有一种固化的流程让大家尽可能减少犯错呢?
数据库设计管理
在我们管理数据库时,依照项目发布版本,tag,环境等建立多个数据库。这些数据库包含了项目启动所必须的环境,是一个纯净的环境。
升级操作
在项目升级时,我们仅需要对数据库版本间进行比对,使用Navicat的数据同步
、结构同步
对两个库进行比对,最终在部署动作时会产生sql语句,最终形成升级sql
-> update.sql
文件即可
写在文末
解决工作流上的问题远比写重复性代码更有经济价值.
Link 一些常见表设计
公用字典表设计
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;