数据迁移教程
本文档详细介绍如何在 Sun-Panel-Helper 版本升级过程中正确迁移数据,特别是针对 v2.0.5 及以上版本引入的新目录结构变更。
重要提示
v2.0.5 版本调整了数据存储目录结构。所有未映射 data 目录的用户,如果需要保存现有配置,都需要进行数据迁移!
v2.0.5 新增了备份功能,只有已经在 v2.0.5 版本中创建了备份,并且想要保留这些备份的用户,才需要迁移 backups 目录数据!
目录结构变更说明
在 v2.0.5 版本中:
- data 目录: 用户数据存储在
/app/backend/data
目录,这是Helper自己的目录,需要您自己创建,用于数据持久化 - backups 目录: v2.0.5 新增的备份功能目录,这是Helper自己的目录,需要您自己创建,只有在 v2.0.5 中已创建备份并希望保留的用户才需要迁移此目录
- custom 目录: 必须指向Sun-Panel的custom目录,Helper通过它控制美化Sun-Panel
从 v2.0.4 及更早版本迁移
步骤 1:准备工作
创建必要的本地数据目录:
# 创建Helper的数据存储目录(这些是Helper自己的目录,不是Sun-Panel的目录)
mkdir -p /your/helper/path/data
mkdir -p /your/helper/path/backups
关于 custom 目录
custom 目录必须指向 Sun-Panel 的 custom 目录,而不是创建新目录!
如果 Sun-Panel 的 custom 目录不存在,需要在 Sun-Panel 的 conf 目录下手动创建:
mkdir -p /path/to/sunpanel/conf/custom
确保目录权限正确:
chmod -R 755 /your/helper/path/data
chmod -R 755 /your/helper/path/backups
chmod -R 755 /path/to/sunpanel/conf/custom
步骤 2:导出现有数据
首先,获取当前运行的容器名称或 ID:
docker ps | grep sun-panel-helper
然后,将容器中的数据复制到本地目录:
# 复制核心数据 (v2.0.4 及之前的版本,数据存储在容器内的 /app/backend/data 目录)
docker cp your-container-name:/app/backend/data/. /your/helper/path/data/
# 如果之前没有挂载 custom 目录,需要复制到 Sun-Panel 的 custom 目录
docker cp your-container-name:/app/backend/custom/. /path/to/sunpanel/conf/custom/
说明
v2.0.5 之前的版本没有备份功能,因此不需要导出 backups 目录。
步骤 3:停止并移除旧容器
安全停止并删除旧版容器:
docker stop your-container-name
docker rm your-container-name
步骤 4:部署新版本
使用新的目录结构部署 v2.0.5 或更高版本:
# Docker 部署
docker pull madrays/sun-panel-helper:latest
docker run -d \
--name sun-panel-helper \
-p 33002:80 \
-e BACKEND_PORT=3001 \
# Helper自己的数据目录
-v /your/helper/path/data:/app/backend/data \
# Helper自己的备份目录
-v /your/helper/path/backups:/app/backend/backups \
# 必须指向Sun-Panel的custom目录
-v /path/to/sunpanel/conf/custom:/app/backend/custom \
madrays/sun-panel-helper:latest
注意
上述命令中,/path/to/sunpanel/conf/custom
必须替换为您的 Sun-Panel 实际 custom 目录的绝对路径!
Docker Compose 部署:
version: '3'
services:
sun-panel-helper:
image: madrays/sun-panel-helper:latest
container_name: sun-panel-helper
environment:
- BACKEND_PORT=3001
ports:
- "33002:80"
volumes:
# Helper自己的数据目录
- /your/helper/path/data:/app/backend/data
# Helper自己的备份目录
- /your/helper/path/backups:/app/backend/backups
# 必须指向Sun-Panel的custom目录
- /path/to/sunpanel/conf/custom:/app/backend/custom
restart: unless-stopped
步骤 5:验证数据迁移
启动新容器后:
- 访问 Web 界面,确认所有设置和配置已正确加载
- 检查各组件是否正常工作
- 验证自定义组件是否显示正常
- 测试创建手动备份功能是否正常
如果界面无法正常加载或数据丢失,请参考数据恢复部分。
已经使用 v2.0.5 但未配置目录映射的用户
未映射 data 目录的情况
如果您使用 v2.0.5 但未映射 data 目录,需要导出数据并重新配置:
# 获取当前容器名称或ID
docker ps | grep sun-panel-helper
# 导出核心数据到本地Helper目录
docker cp your-container-name:/app/backend/data/. /your/helper/path/data/
已创建备份但未映射 backups 目录的情况
如果您在 v2.0.5 中已创建备份,并且希望保留这些备份,需要导出备份目录:
# 获取当前容器名称或ID
docker ps | grep sun-panel-helper
# 导出备份数据到本地Helper目录
docker cp your-container-name:/app/backend/backups/. /your/helper/path/backups/
完成数据导出后,重新部署容器并正确映射目录:
# 停止并移除当前容器
docker stop your-container-name
docker rm your-container-name
# 使用正确的挂载配置重新部署
docker run -d \
--name sun-panel-helper \
-p 33002:80 \
-e BACKEND_PORT=3001 \
-v /your/helper/path/data:/app/backend/data \
-v /your/helper/path/backups:/app/backend/backups \
-v /path/to/sunpanel/conf/custom:/app/backend/custom \
madrays/sun-panel-helper:latest
从 v2.0.5 迁移到更高版本
如果您已经正确配置了 v2.0.5 版本的所有挂载目录,迁移到更高版本非常简单:
# 拉取最新镜像
docker pull madrays/sun-panel-helper:latest
# 停止并移除旧容器
docker stop sun-panel-helper
docker rm sun-panel-helper
# 使用相同的挂载目录创建新容器
docker run -d \
--name sun-panel-helper \
-p 33002:80 \
-e BACKEND_PORT=3001 \
-v /your/helper/path/data:/app/backend/data \
-v /your/helper/path/backups:/app/backend/backups \
-v /path/to/sunpanel/conf/custom:/app/backend/custom \
madrays/sun-panel-helper:latest
使用 Docker Compose:
# 进入 docker-compose.yml 所在目录
docker-compose pull
docker-compose up -d
数据恢复
如果在迁移过程中遇到问题,或者不慎丢失数据,可以尝试以下恢复方法:
使用备份恢复(仅适用于 v2.0.5+ 版本)
如果您之前使用 v2.0.5 版本并创建了备份:
- 进入 Web 界面的"备份管理"页面
- 选择一个可用的备份文件
- 点击"恢复"按钮
- 按照界面提示完成恢复过程
手动恢复
如果没有可用的备份,但之前导出了容器数据:
- 停止当前容器
- 清空挂载目录中的 data 目录
- 将之前备份的数据复制回 data 目录
- 重新启动容器
docker stop sun-panel-helper
rm -rf /your/helper/path/data/*
cp -r /your/backup/path/* /your/helper/path/data/
docker start sun-panel-helper
常见问题
Q: 升级后无法访问界面或显示空白页面
可能的解决方法:
- 检查容器日志
docker logs sun-panel-helper
- 确认所有必要挂载目录都已正确配置
- 尝试清除浏览器缓存或使用隐身模式访问
Q: Helper 设置的美化和组件在 Sun-Panel 中不生效
可能的原因和解决方法:
- custom 目录未正确挂载到 Sun-Panel 的 custom 目录
- 确认
/app/backend/custom
已正确挂载到 Sun-Panel 的 custom 目录 - 检查 Sun-Panel 的 custom 目录权限是否正确
- 确认 Sun-Panel 和 Helper 都能正常访问该目录
Q: TR 组件域名前缀设置不生效
v2.0.6 版本已修复此问题。如果您使用的是 v2.0.5 版本,请升级到 v2.0.6。
Q: 如何确认数据已正确迁移?
查看容器日志,确认没有数据相关的错误信息,并检查 Web 界面上的设置是否与之前一致。
Q: 备份文件太多,如何管理?
- 自动备份:系统会自动清理,最多保留 100 个
- 手动备份:永久保存,需要手动删除不需要的备份