表结构变更(版本升级)
系统每次发新版本,会伴随着数据库表结构、数据的变更。这个时候,我们可以通过 Navicat 提供的「结构同步」「数据同步」功能,来进行数据库的升级。
友情提示:
你自己的项目发布上线,如果涉及到数据库表结构的变更,也可以试试 Navicat 的「结构同步」「数据同步」功能。
我们之前项目,蛮多同学都是这么干的,避免漏字段!
# 1. 结构同步
本小节,我们以 2.0.0
版本升级到 2.1.0
版本为例。需要先自己初始化对应的两个数据库,如下图所示:
① 点击 Navicat 的 [工具 -> 结构同步] 菜单,配置源数据库是 2.1.0
,目标数据库是 2.0.0
,因为是将“新”应到“老”数据库。如下图所示:
② 点击左下角的 [选项] 按钮,取消掉“比较自动递增值”,因为我们不希望自增值也同步。如下图所示:
③ 点击右下角的 [下一步] 按钮,可以看到每个表的表更情况(新增、修改、删除)。如下图所示:
此时,如果你只想看部分表的变更,可以点击“源对象”下的选项,取消掉不需要同步的表。
④ 继续点击右下角的 [下一步] 按钮,可以看到具体的 SQL 变更语句。如下图所示:
注意,不要点击有效的 [开始] 按钮,而是将 SQL 语句复制出来,二次检查后,选择你需要的部分,手动执行变更!
友情提示:DataGrip 也提供类似功能,后面也可以尝试下。
# 2. 数据同步
Navicat 的「数据同步」功能,和「结构同步」同步是一致的,只是在最后一步,会展示数据的变更情况(新增、修改、删除),这里就不重复演示了。
系统绝大多数表的数据变更不用关注,只需要关注偏 全局配置 的表,例如说:
- 字段相关:
system_dict_type
、system_dict_data
- 权限相关:
system_menu
- 邮件相关:
system_mail_template
- 短信相关:
system_sms_template
- 站内信相关:
system_notify_template