乡村管理系统 DOCS
文档 备份恢复

备份恢复

系统每天自动备份本地数据库, 保留最近 30 份; 换电脑、电脑坏了、误删了一片数据, 都靠这里救回来。

备份策略: 每天自动一次, 本地保留 30 份

软件装好后, 备份就在后台自己跑, 不用管。规则很简单:

项目规则
触发时机软件启动时先检查一次, 之后每小时检查一次; 当天还没有自动备份就补一份, 已有就跳过
保留份数最近 30 份自动备份, 超出的最旧那份自动删掉(手动备份不受这个数量限制, 不会被自动清理)
命名规则系统自动备份: auto-YYYYMMDD-HHmmss.db;手动备份及还原前的安全备份: manual-YYYYMMDD-HHmmss.db
触发条件主机当时必须开机且软件在跑, 否则当天跳过, 等下次开机再补

左侧菜单进入"备份恢复", 下方是一张备份列表。每一行显示备份文件名、类型(自动/手动)、大小、备份时间, 行尾有"下载""恢复""删除"三个按钮。

关于"每天没开机"

如果连续几天电脑没开, 备份就这几天没有。建议把主机设成不关机, 或者在重要操作前手动点一下"立即备份"。

备份文件存放路径, 也可以自己改

所有备份文件都放在主机本地, 不上传任何外网。默认路径:

类型路径
当前数据库D:\乡村管理系统\data\data.db(没 D 盘则在 %APPDATA%\cn.village.admin\data\data.db)
自动/手动备份目录D:\乡村管理系统\data\backups\(没 D 盘则在 %APPDATA%\cn.village.admin\data\backups\)
业务文件目录(资料/证明模板/报表模板/聊天附件等, 共 6 个子目录)D:\乡村管理系统\data\ 下的 files\cert_templates\templates\chat-files\branding\app_icons\(没 D 盘则在 %APPDATA%\cn.village.admin\data\ 下); 具体每个目录装的是什么, 见下面"备份是否包含资料文件/模板等"一节

程序默认装在 D:\乡村管理系统\, 数据就跟着装在同目录的 data\ 下; 如果机器没有 D 盘, 安装时会回落到 C:\Program Files\乡村管理系统\, 数据相应地落在 %APPDATA%\cn.village.admin\data\。把上面的路径粘到资源管理器地址栏回车就能直接打开(备份恢复页面本身没有"打开备份目录"这个按钮, 需要手动粘路径)。

不想用默认路径也可以改: 备份恢复页面最上方"数据存储位置"卡片, 点更改位置, 填一个新的文件夹完整路径(建议 D 盘等非系统盘, 不能选 C:\Program Files 下的目录), 点"开始迁移"后系统会把数据库、登录配置、全部历史备份完整复制过去, 旧位置的数据原样保留作为保险; 迁移完成后需要关闭程序重新打开才生效。这个设置只需要在装有本程序的主机上做一次。

手动立即备份(应急前)

遇到这几种情况, 一定先手动备份一次再操作:

  • 准备大批量导入数据 (一次几千条)
  • 准备批量编辑或批量删除
  • 准备删除/重命名一个模块的字段
  • 准备升级软件版本
  1. 进入页面左侧菜单点"备份恢复"
  2. 点立即备份工具栏绿色按钮"立即备份"
  3. 等几秒提示"备份完成", 列表第一行会出现一份新的, 类型标记为"手动"

整个过程一般 1-3 秒结束, 数据再多也不会超过 10 秒。

删除单份备份文件

备份攒多了想清掉某一份(比如确认某次演练用的备份已经没用), 行尾点删除, 弹窗"确定删除备份「文件名」吗?"确认后立即从磁盘删掉这个文件。这个操作跟自动清理是分开的——自动清理只删自动备份里超出 30 份的最旧那份, 手动删除可以删任意一份。

备份文件大小估算

备份文件就是把 SQLite 数据库整库复制一份, 所以大小约等于当前 data.db 的大小。一个粗略的参照:

记录总量大致大小30 份占用
1 千条以内2-5 MB不到 200 MB
1 万条左右15-30 MB1 GB 左右
5 万条以上80-150 MB3-5 GB

记录总量是把所有模块加起来算的(村民+党员+低保户+各种台账)。基本不用担心占满硬盘, 但如果系统盘只剩几个 G, 还是建议清理一下。

手动下载备份(存 U 盘 / 网盘)

自动备份只在本机硬盘上。本机硬盘坏了, 备份也跟着没了。所以建议每周至少下载一份到 U 盘或网盘

  1. 选一份在备份列表里挑最新的那份, 或者今天手动备的那份
  2. 点下载行尾"下载"按钮, 浏览器/系统会把这个 .db 文件保存到默认下载目录
  3. 转存把下载好的文件复制到 U 盘根目录、移动硬盘、或者已经同步的网盘文件夹(微云/百度网盘的本地同步盘)
  4. 保留文件名文件名还是原来的 auto-YYYYMMDD-HHmmss.dbmanual-YYYYMMDD-HHmmss.db, 别改, 以后好认
建议的双保险

U 盘存一份, 网盘存一份。U 盘怕丢、怕坏, 网盘怕忘密码, 两个都有就稳了。每月轮换一次, 一年下来花不了 10 分钟。

从备份恢复: 点"恢复"覆盖当前数据

恢复只有一个入口——备份必须先出现在本机的备份列表里(列表就是扫描 backups\ 目录里的 .db 文件, 页面本身没有"上传"按钮):

情况一: 备份就在本机列表里

  1. 找到那份在列表里找日期最接近你想回到的那份
  2. 点恢复行尾"恢复"按钮
  3. 看清提示弹窗写"确定把全部数据恢复到「备份时间」的状态吗?当前数据会被覆盖(系统会先自动备份一份当前数据, 可回退)。", 点"确定恢复"
  4. 等几秒提示"恢复完成", 页面会自动刷新加载恢复后的数据

情况二: 备份在 U 盘里(本机数据丢了或换了新电脑)

系统没有网页上传备份的功能, 需要用文件资源管理器手动把 .db 文件复制进备份目录, 列表刷新后就能看到它:

  1. 找到备份目录默认 D:\乡村管理系统\data\backups\(没 D 盘则在 %APPDATA%\cn.village.admin\data\backups\)
  2. 复制文件把 U 盘里的 .db 文件复制粘贴到这个目录下; 文件名只能含字母、数字、-_., 且必须以 .db 结尾, 否则页面上看不到它
  3. 刷新页面回到"备份恢复"页(或重新进入), 新复制的文件会出现在列表里
  4. 点恢复对这一行点"恢复", 后面流程同情况一

还原前的确认(将覆盖当前所有数据)

这步特别重要, 别手抖点过去。

还原 = 当前所有数据被覆盖

从你点"确定恢复"那一刻起, 当前数据库里的所有内容(包括最新加的人、改的字段、收的党费、开的证明)全部消失, 整库换成备份那一天的样子。这个操作没有"撤销", 只能再用一份更新的备份盖回来。

点"恢复"只会弹出一次确认框(写清备份时间和"当前数据会被覆盖"), 点"确定恢复"就立即执行——不需要额外输入"还原"字样或密码, 只有 admin 能进这个页面, 这就是唯一的门槛。真正的安全网是: 确认框里已经写明"系统会先自动备份一份当前数据", 也就是在覆盖之前, 系统会先用 manual-YYYYMMDD-HHmmss.db 的命名给"恢复前的当前数据"再存一份, 万一选错备份, 还能从这一份找回来。

还原后哪些数据会丢(从备份日期到现在的所有变更)

很多人以为"只还原某个模块", 系统不支持这种操作, 还原是整库还原, 全是全无。具体哪些会丢, 列清楚:

项目还原后的状态
所有模块的记录(村民/党员/低保/...)回到备份那天
模块的字段结构、视图配置回到备份那天
用户和角色权限回到备份那天
党费缴纳记录回到备份那天
已开过的证明记录回到备份那天
操作日志回到备份那天(还原本身这条会留下)
全局回收站里的记录回到备份那天
资料文件/证明模板/报表模板/聊天附件等文件本体不变, 见下面"备份是否包含资料文件/模板等"

举个例子: 上一份备份是 6 月 15 日凌晨, 你 6 月 20 日把数据还原回去, 那么 15 日凌晨到 20 日之间新增/修改的全部不见, 包括这 5 天新登记的村民、新收的党费、新开的证明。

换电脑迁移(下载当前 db + 在新电脑上还原)

主机要换台新电脑, 流程就是"下载 → 拷贝 → 新机还原":

  1. 旧机手动备份在旧电脑点"立即备份", 拿到最新一份
  2. 下载到 U 盘对这一份点"下载", 转存到 U 盘
  3. 拷贝业务文件目录D:\乡村管理系统\data\(没 D 盘则在 %APPDATA%\cn.village.admin\data\)下的 files\cert_templates\templates\chat-files\branding\app_icons\ 这 6 个文件夹一并复制到 U 盘(哪个存在就拷哪个, 没用过对应功能的目录可能还没生成, 跳过即可)
  4. 新机装软件在新电脑装上同版本(或更高版本)的乡村管理系统, 第一次启动用 admin/admin123 登录一下让它初始化
  5. 新机放备份文件把 U 盘里的 .db 文件复制到新机的 data\backups\ 目录下, 进"备份恢复"页刷新就能看到它, 点"恢复"
  6. 新机放业务文件把 U 盘里的这 6 个文件夹分别覆盖到新机 data\ 下的同名目录
  7. 验证登进去看几条带附件/证明模板/聊天文件的记录, 都能正常打开或预览就 OK
版本号要看清

新机软件版本不能比旧机低。低版本无法识别新版本的数据库结构, 还原会失败。装新机时直接装最新版, 或装跟旧机一样的版本。

备份是否包含资料文件/模板等(注意这些是单独的目录)

这是最容易踩坑的一点, 记牢: data.db 备份只包含结构化数据, 数据库之外还有 6 个存真实文件的目录, 备份 .db 时容易漏掉它们。

类型是否在 .db 备份里说明
文本/数字/日期/下拉等字段值所有结构化数据都在 .db 里
附件/图片字段、证明模板等的记录但 .db 里只存了文件名、路径这些元数据
资料文件库文件本体(files\)不在"文件管理"模块里上传的资料文件, 见 文件管理
证明 docx 模板本体(cert_templates\)不在开具证明用的模板文件, 见 证明开具
报表模板本体(templates\)不在报表导出用的 xlsx 模板, 见 报表管理
聊天附件本体(chat-files\)不在内部聊天里发送的文件, 见 内部聊天
登录背景/品牌图片本体(branding\)不在系统设置里上传的登录背景、村徽等图片
外部程序图标缓存(app_icons\)不在外部程序快捷启动用的图标缓存, 丢了会自动重新生成, 就算漏备份影响也很小

所以一次完整的"全量备份"要做两件事:

  1. 下载 .db在备份恢复页面下载最新一份
  2. 压缩这 6 个业务文件目录D:\乡村管理系统\data\(没 D 盘则在 %APPDATA%\cn.village.admin\data\)下的 files\cert_templates\templates\chat-files\branding\app_icons\ 一起打包成 zip, 跟 .db 放一起(哪个目录还没生成就跳过, 不影响其他目录)

只导 .db 不导这 6 个目录, 还原后会看到资料文件、证明模板、聊天附件这些记录的名字还在, 但点开会提示"文件不存在"。

备份失败排查(磁盘空间 / 权限)

系统没有在备份恢复页顶部做失败红条提示——自动备份失败只会写进系统日志, 界面上不会主动告诉你。判断有没有失败, 最直接的办法是隔一段时间就打开"备份恢复"页看看列表里今天有没有新的 auto- 开头的文件。手动点"立即备份"如果失败, 会弹出报错(常见文案是"文件操作失败"这类通用提示)。常见原因和处理:

现象可能原因处理
手动"立即备份"报错磁盘空间不足、备份目录没有写入权限、或数据库正被大批量操作占用清理系统盘空间; 检查备份目录是否可写; 等当前批量导入/编辑做完再重试
机器没有 D 盘, 软件回落装到了 C:\Program Files\乡村管理系统\该目录受系统权限保护, 写入可能受限右键软件图标 → 以管理员身份运行, 或用本页"数据存储位置 → 更改位置"把数据迁到 D 盘等非系统盘
列表连续几天没有新的 auto- 备份主机这几天没开机, 或软件没在跑手动点一次"立即备份"补上

排查后再点一次"立即备份"验证, 列表多出一行就说明问题解决了。

建议的定期校验(每月手动还原一次测试)

有备份不等于备份能用。见过太多单位备份了一年, 真出事时才发现文件早就坏了。建议每个月固定做一次恢复演练:

  1. 找一台测试电脑不要在主机上做, 拿一台闲置电脑或办公笔记本
  2. 装一份软件装同版本的乡村管理系统
  3. 拷一份最近的备份从主机或 U 盘拿一份最新的 .db
  4. 在测试机上还原把 .db 复制进测试机的 data\backups\ 目录 → 刷新"备份恢复"页 → 点还原
  5. 抽查 5 条数据登进去, 随便找 5 个村民, 看姓名、身份证、电话、关联的低保户是不是齐的
  6. 登记记录在纸质本上写一行"YYYY-MM-DD 备份校验通过, 经办人: XXX"
把这件事变成每月固定动作

定一个日子, 比如每月 5 号, 跟交党费、报报表这些事情一起做, 半小时就能搞定。坚持半年, 就再也不用担心数据丢了。还可以顺便看一下 全局回收站 里有没有要清的东西。