DBeaver 崩溃后 5 分钟找回 SQL 脚本:完整指南
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
DBeaver 崩溃后,最怕的就是没保存的 SQL 脚本找不回来。这篇文章会带你走通三条恢复路径:编辑器本地历史、自动保存文件、手动备份,并给出 3 个防丢配置的推荐参数。读一遍加照着设置,大约需要 5 分钟。
自查:先判断你的情况(1 分钟)
恢复之前,先花 1 分钟确认你处于哪种状态。下面每个问题只回答"是"或"否":
- 重启 DBeaver 后,文件还在,只是内容回到了上次按 Ctrl+S 之前的样子?
- 是 → 丢失的是未保存部分,走路径 1。
- 文件在,但崩溃前你只改了很短时间(1 分钟内)?
- 是 → 先走路径 2,不行再补路径 1。
- 重新打开文件后,右键编辑器标签选 Local History,里面能看到 2 条以上记录?
- 是 → 路径 1 基本能解决。
- 重要脚本你有另外存过副本(磁盘备份或 git 仓库)?
- 是 → 直接走路径 3,通常最快。
📌 恢复路径:按需选一条
无论走哪条路径,第一步都一样:重启 DBeaver,先不做任何编辑,避免覆盖现场。
路径 1:编辑器本地历史(Local History)
适用情况:文件还在,丢失的是最近没保存的改动。
- 在 DBeaver 中重新打开那个 .sql 文件。
- 右键编辑器标签,选择 Local History。
- 列表按时间倒序,选中离崩溃时间最近的一条,点 Compare 对比。
- 确认关键逻辑都在,选择恢复。
- 用 Ctrl+Shift+S(另存为)存成新文件,别直接覆盖当前文件。
注意:历史记录存在当前工作区里。如果你换了工作区目录或清理过工作区,记录会跟着没。
路径 2:自动保存文件
适用情况:崩溃前自动保存是开着的,内容已经写了一会儿。
- 重启后直接打开文件,看自动保存是否已把最新内容写回磁盘。
- 内容还是旧的,就到文件管理器查看该文件的修改时间,确认最后一次落盘离崩溃有多远。
- 如果差一段内容,回路径 1 用本地历史补齐。
注意:自动保存有间隔,崩溃发生在最近一次写入的 30 秒内时,这 30 秒的内容可能没落盘。
路径 3:手动备份
适用情况:你平时有备份习惯,这是崩溃后找回代码最稳的一条路。
- 从备份目录或 git 历史里找到最近的备份文件。
- 在 DBeaver 中同时打开备份和当前文件,左右对照。
- 把缺的部分合并回当前文件。
- 把合并结果另存为正式版本。
三条路径怎么选
| 路径 | 触发条件 | 找回概率 | 预计耗时 |
|---|---|---|---|
| 本地历史 | 文件还在,丢失未保存改动 | 高 | 3–5 分钟 |
| 自动保存文件 | 崩溃前自动保存已开启 | 中高 | 1–3 分钟 |
| 手动备份 | 平时有 Save As / git 习惯 | 高 | 2–10 分钟 |
⚙️ 提前设防:三个防丢配置
1. 自动保存
打开偏好设置(菜单里的 Preferences),在搜索框输入 save,在编辑器设置区打开自动保存。DBeaver 基于 Eclipse 平台,选项位置和其他 Eclipse 编辑器一致。
自动保存在后台按固定节拍运行,核心判断逻辑在 EditorUtils.java 中:
public static boolean isInAutoSaveJob() { Job currentJob = Job.getJobManager().currentJob(); if (currentJob == null) { return false; } return "Auto save all editors".equals(currentJob.getName()); }推荐参数:间隔 30 秒。怎么设自动保存间隔?如果你用默认值,30 秒就是推荐值;写长事务脚本时不要为了性能把它调到 120 秒以上。
2. 恢复点(本地历史)
恢复点在哪?就是路径 1 里的 Local History 列表,DBeaver 默认对每个编辑器持续记录,不需要单独打开。
- 每完成一个大的逻辑段落就按一次 Ctrl+S,等于手动打一个恢复点。
- 不要随便"清除工作区",记录会一起被清掉。
3. 手动备份
- 命名规则:脚本名_日期_版本,例如 report_20260823_v2.sql。
- 用 Save As 存到与项目不同的目录;重要的 SQL 脚本进 git,每天至少提交一次。
✅ 验证与日常习惯
一次自测流程(约 5 分钟)
- 建一个 test.sql,写一段 10 行的查询,按 Ctrl+S 保存。
- 再添加 3 行,不保存,等 1 分钟让自动保存触发。
- 重启 DBeaver,打开文件:3 行新内容还在 → 自动保存生效。
- 右键编辑器标签选 Local History:能看到 2 条以上记录 → 恢复点正常。
- 哪一步没通过,就回上面"三个防丢配置"里修对应那一项。
日常习惯
- 每写完一段查询,1 分钟内按一次 Ctrl+S
- 超过 200 行的脚本,每小时 Save As 一次备份
- 重要 SQL 脚本进 git,每天至少提交一次
- 工作区所在磁盘留有 1GB 以上空闲空间
设置好 30 秒自动保存间隔,让本地历史一直开着,关键节点主动 Ctrl+S。 三层都在,崩溃最多只让你损失最后 30 秒的内容。
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考