105
本教程适用于使用 Docker Compose 部署的 Rhex 论坛系统,帮助您:
定期备份数据库和用户上传文件
从备份中快速恢复数据
备份命令
bashdocker compose --profile backup run --rm postgres-backup
tar -czf backups/rhex-files-$(date +%Y%m%d-%H%M%S).tar.gz uploads addons .env docker-compose.yml
备份后得到两个文件:
backups/rhex_YYYYMMDD-HHMMSS.dump(数据库备份)backups/rhex-files-YYYYMMDD-HHMMSS.tar.gz(文件备份)
恢复教程(示例目录与名称)
假设:
- 项目目录:
/www/dk_project/dk_app/Rhex - 数据库备份:
/www/dk_project/dk_app/Rhex/backups/rhex-20260516-162228.dump - 文件备份:
/www/dk_project/dk_app/Rhex/backups/rhex-files-20260516-162317.tar.gz - 数据库服务名:
postgres .env配置:textPOSTGRES_DB=bbs POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres
恢复命令(逐条执行)
bash# 1. 进入项目目录
cd /your/project/path/Rhex
# 2. 停止所有服务(可选)
docker compose down
# 3. 恢复文件(覆盖 uploads、addons、.env、docker-compose.yml)
tar -xzf backups/rhex-files-20260516-162317.tar.gz -C .
# 4. 仅启动数据库容器
docker compose up -d postgres
# 5. 等待数据库就绪(约5秒)
sleep 5
# 6. 恢复数据库(使用 pg_restore)
docker compose exec -T postgres pg_restore -U postgres -d bbs --clean --if-exists < backups/rhex-20260516-162228.dump
# 7. 启动所有服务
docker compose up -d
# 8. 访问 http://localhost:3000 验证
最后访问 http://localhost:3000 验证。
受命于天,既寿永昌!
回复讨论
1
登录后可参与回复讨论。
文明发言,理性讨论
Calm
·前天