Navicat Cloud回收站仅保存最后一次同步的被删脚本,不保留历史版本;恢复仅限还原最新版,旧版本需依赖带时间戳的本地.sql文件或Git管理。
Navicat Cloud 回收站只存删除记录,不存历史版本
navicat cloud 没有「查询脚本的历史版本」功能。所谓“恢复历史版本”,实际只有两种可能路径:一是从回收站还原**被删除的最新版脚本**;二是你手动保存过带时间戳的本地 .sql 文件。cloud 本身不会自动保存修改前的旧内容,每次同步只会覆盖上一次的 sql 文本。
为什么在回收站里找不到想要的旧版本
常见错误现象:回收站为空 或 找到的脚本和记忆中的内容不符。原因很直接:
- 该查询从未点击过「同步到云」,本地删了就彻底消失
- 你同步过多次,但 Cloud 只保留最后一次提交的内容,不保留中间修改记录
- 同事在你之前同步过新版本,覆盖了你想找的旧逻辑,而旧版没被单独存档
- 回收站里显示的「删除时间」比你预期早,说明它删的是更早一次的同步结果
怎么确认当前脚本是否已被覆盖或丢失
打开 Navicat → 左下角 Navicat Cloud 图标 → 切换到「查询」→ 点顶部「全部」标签页 → 找到目标脚本名称 → 右键选「属性」:
- 查看「最后同步时间」是否和你修改的时间吻合
- 如果「最后同步时间」远早于你最近一次编辑,说明那次编辑没点同步,已丢失
- 属性里没有「版本号」「修改记录」或「差异对比」按钮——这些功能根本不存在
真正能保住历史版本的实操办法
别依赖 Cloud 自动存档。必须主动干预:
- 把高频用、结构复杂的查询脚本,单独保存为
query_user_login_v20240512.sql这类带日期/版本号的本地文件 - 把这些
.sql文件纳入 Git 仓库,每次修改都git commit -m "add email validation" - 在 Navicat 中禁用自动同步,改用「导出为 SQL 文件」+「手动上传到云盘/Git」的组合流程
- 如果团队共用,约定脚本命名规范,例如
report_sales_q3_template_v1.sql、report_sales_q3_template_v2.sql
Cloud 回收站不是 Git,它连 diff 都不做。真要回溯逻辑变更,唯一可靠路径是本地文件 + 版本控制 —— 否则你永远不知道删掉的到底是 v1 还是 v3。


















