结构同步前必须勾选“生成备份脚本”,该选项位于部署脚本页底部、靠近“运行”按钮左侧,默认关闭且不自动触发备份;勾选后仅生成DROP IF EXISTS + CREATE TABLE结构语句作为事务内回滚依据,不包含数据、视图或存储过程,也不自动保存或执行,漏选即裸奔执行DDL。
结构同步前必须勾选“生成备份脚本”
navicat 的 结构同步 向导本身不自动备份目标库,所谓“自动备份”其实是靠手动启用一个开关:在比对完成、进入部署脚本预览页后,必须勾选 生成备份脚本 复选框,否则不会产生任何备份动作。
这个选项默认是关闭的,且位置隐蔽——它不在初始设置页,也不在比对页,只出现在第三步“部署脚本”页面底部,靠近“运行”按钮的左侧区域。漏掉它,等于裸奔执行 DDL 变更。
勾选后实际生成什么内容
勾选 生成备份脚本 后,Navicat 会在执行同步 SQL 前,先生成一组 DROP TABLE IF EXISTS + CREATE TABLE 语句,覆盖所有将被修改/删除的表。这些语句会被打包进同一个 SQL 文件(或内存脚本),但不会自动执行,也不会写入磁盘文件,仅作为回滚依据内嵌在事务逻辑中。
- 它不备份视图、函数、存储过程等其他对象,只处理表结构
- 它不保存历史版本,每次同步只保留本次变更前的快照
- 如果目标表有数据,备份脚本里不会包含
INSERT,只保结构
为什么不能依赖这个备份做真正恢复
这个“备份脚本”本质是防御性快照,不是独立备份产物。它的存在前提是同步流程成功走到部署阶段,并且你点了“运行”。一旦同步中途报错退出,或者你手动取消,该脚本就彻底丢弃,无处查找。
真正需要可追溯、可离线恢复的备份,请提前用 备份 工具(顶部工具栏图标)或 数据传输 工具(取消勾选 创建记录)单独导出结构。
安全执行结构同步的最小操作清单
别跳步骤,尤其别跳确认页:
- 在“结构同步”向导第二步点击
比对后,务必逐项检查“操作”列:确认哪些是ALTER、哪些是DROP、哪些是CREATE - 进入第三步“部署脚本”页,滚动到底部,找到并勾选
生成备份脚本 - 点击
预览按钮,查看完整 SQL 流程:上面是备份部分,下面是变更部分 - 如果目标库已有重要数据,额外手动执行一次
备份(工具栏图标 → 新建备份),再点运行
最常被忽略的是预览环节——很多人直接点运行,结果发现备份脚本没生效,是因为预览时才发现勾选状态被意外取消了。











