跳到主要内容

初始化、备份和升级

这篇文档集中说明开源版 v1.12.0 第一次初始化、导出备份、导入恢复和升级系统的操作。

使用场景

  • 第一次部署完成后,浏览器进入了 /setup 页面。
  • 准备升级、迁移服务器或更换部署方式。
  • 需要定期备份系统数据,避免误删或服务器故障导致数据丢失。
注意

升级、迁移、导入备份前,先导出一份备份包并保存到自己的电脑。不要只把备份放在原服务器上。

初始化系统

1. 打开 /setup

部署完成后,在浏览器打开部署文档里给出的访问地址。

如果系统还没有初始化,会自动进入 /setup 页面。没有自动跳转时,可以手动访问:

http://你的访问地址/setup
图片占位

截图:首次打开系统进入 /setup 页面,标注「H2 内置数据库」「MySQL 数据库」「下一步」位置 文件名:setup-select-database.png

2. 选择数据库

选择适合场景
H2 内置数据库试用、小范围演示、不想安装 MySQL
MySQL 数据库正式使用、多人填写、数据比较重要
提示

正式使用建议选 MySQL。H2 更适合先体验功能。

3. 填写 MySQL 信息

如果你选择 MySQL 数据库,先选择部署方式,再填写数据库连接信息。

常见填写方式:

部署方式数据库地址端口号数据库名称用户名密码
Docker Compose 一键脚本mysql3306surveykingsurveykingsurveyking/.env 里的密码
群晖 / 飞牛 NAS 本文 Composemysql3306surveykingrootsurveyking
宝塔手动 / Linux 手动localhost3306surveyking你创建的用户你设置的 MySQL 密码
外部 MySQLMySQL 地址3306你的数据库名MySQL 用户名MySQL 密码

填写后点击 测试连接。测试通过后再继续。

注意

Docker Compose 和 NAS 部署时,/setup 里的 MySQL 端口通常填 3306,不是 3306033060 是给 NAS 或服务器外部连接 MySQL 用的端口。

4. 填写系统信息

按页面提示填写:

配置项说明
系统名称登录页和浏览器标题里显示的名称
系统描述可不填
默认语言默认选择简体中文
开放注册不确定时先关闭
AI 配置可以先关闭,后面到系统设置里再打开

确认信息后点击 开始初始化

  • 选择 H2:初始化完成后,点击 进入系统
  • 选择 MySQL:系统会自动重启,重启完成后跳转到登录页。

默认账号:

项目默认值
账号admin
密码123456

第一次登录后,马上进入 系统管理个人设置安全设置 修改默认密码。

导出备份

1. 进入数据备份

用管理员账号登录系统,进入 系统管理系统设置

在页面下方找到 数据备份

图片占位

截图:系统管理 → 系统设置页面,标注「数据备份」「导出备份」「导入备份」按钮 文件名:system-setting-backup.png

2. 点击导出备份

点击 导出备份,浏览器会下载一个 .zip 文件,文件名类似:

surveyking-backup-20260502_153000.zip

备份包包含:

内容说明
manifest.json备份清单、版本和来源信息
data/*.ndjson每张数据表的数据
files/上传的附件目录
注意

不要手动修改备份包里的文件。导入时会校验备份内容,改坏后可能无法恢复。

3. 保存备份包

建议至少保存两份:

  • 一份放在自己电脑或移动硬盘。
  • 一份放在网盘、对象存储或其他服务器。

如果要升级系统,先确认备份包已经下载完成,再继续操作。

导入恢复

1. 准备目标系统

先部署并初始化一个可登录的卷王系统。

如果是迁移到新服务器,建议目标系统版本和原系统一致,或高于原系统版本。不要把新版本备份导入到旧版本系统。

2. 上传备份包

进入 系统管理系统设置数据备份,点击 导入备份,选择之前导出的 .zip 文件。

系统会提示“导入备份将覆盖当前系统数据”,确认无误后点击 继续导入

危险

导入备份会覆盖当前系统中的同名数据表和上传文件目录。导入前,先把当前系统也导出一份备份。

3. 检查导入结果

导入成功后,系统会提示恢复了多少张表、多少条数据、多少个文件。

如果提示有跳过的数据表,通常是版本不一致导致目标系统没有对应的数据表。先确认目标系统版本,再决定是否重新部署到更合适的版本。

升级系统

1. 推荐方式:重新部署新版本

对没有技术基础的用户,最稳妥的升级方式是重新部署一套新版本,再导入备份。

操作顺序:

  1. 在旧系统里进入 系统管理系统设置数据备份,点击 导出备份
  2. 按部署文档重新部署一套新版本卷王。
  3. 打开新系统,先完成 /setup 初始化。
  4. 登录新系统,进入 系统管理系统设置数据备份,点击 导入备份
  5. 检查项目、用户、答卷和上传附件是否正常。
  6. 确认没问题后,再停掉旧系统或切换域名。

这种方式的好处是:旧系统还在,升级失败也可以先退回旧系统。

2. 原地升级

如果你熟悉当前部署方式,也可以原地替换程序。

部署方式升级动作
Docker Composedocker compose pull 后执行 docker compose up -d
Docker 单容器docker pull 后删除旧容器,再用原来的挂载目录重新启动
Windows 一键包停止旧程序,解压新版本,启动新版本后导入备份
宝塔 / Linux停止项目,替换新版本 jar,再启动项目
NAS Compose在 Compose 项目里重新拉取镜像,或重新构建并启动项目
注意

原地升级前也要先导出备份。不要在没有备份的情况下直接删除容器、删除目录或替换数据库。

3. 是否需要执行数据库脚本

先查看 开源版本更新开源版更新日志

如果更新说明里要求执行数据库升级脚本,按版本顺序执行。比如从 v1.6 升到 v1.8,先执行 v1.6 -> v1.7,再执行 v1.7 -> v1.8

如果更新说明没有要求执行脚本,通常只需要更新程序并重启。

常见问题

初始化完成后还能重新进入 /setup 吗?

不能正常重复初始化。

初始化完成后,系统会进入登录页。系统名称、注册设置、AI 配置可以在 系统管理系统设置 里修改。

如果你要重新初始化,建议重新部署一套空系统,然后导入需要的备份。

备份包能从 H2 恢复到 MySQL 吗?

可以尝试,前提是目标系统版本和原系统一致,或高于原系统版本。

更稳妥的做法:

  1. 部署一套使用 MySQL 的新系统。
  2. 完成 /setup 初始化。
  3. 在新系统里导入 H2 系统导出的备份包。
  4. 检查项目、用户、答卷和附件是否完整。
导入备份会不会覆盖现在的数据?

会。

导入备份会覆盖当前系统中的同名数据表和上传文件目录。导入前,先导出当前系统备份。

备份包包含上传的图片和附件吗?

包含。

备份包里的 files/ 目录就是系统上传文件目录。导入备份时,这个目录也会一起恢复。

系统已经打不开了,还能备份吗?

如果系统页面打不开,优先联系技术人员做服务器层面的备份。

至少要备份:

部署方式重点备份内容
Docker ComposeMySQL 数据卷或 mysql/datafiles
Docker 单容器挂载的 dbfileslogs 目录
Windows 一键包解压目录里的数据库和上传文件目录
Linux 手动/opt/surveyking/db/opt/surveyking/files、MySQL 数据库
NAS Compose项目目录里的 mysql/datafiles