跳到主要内容

升级与备份

备份​

升级前先备份,哪怕升级理论上不会改动现有数据库。

要备份的怎么做
数据库MySQL 用 mysqldump;PostgreSQL 用 pg_dump;SQLite 直接复制 cloudreve.db 文件
data 目录内含 conf.ini、头像、临时文件,以及本地存储策略上传的文件。Docker 部署备份挂载的数据卷
外部存储使用 S3、OSS 等对象存储时,文件在对象存储里,按对应服务商的方式备份
# PostgreSQL(Docker Compose 示例)
docker exec postgresql pg_dump -U cloudreve cloudreve > cloudreve.sql

:::warning只备份数据库不够。没有 data 目录,你会丢失本地上传的文件,开启文件加密的话还会丢失主密钥,加密文件将无法解密。:::

升级 v4 小版本​

以下步骤只适用于 v4.x.x 内部升级。

二进制部署​

替换主程序文件为新版本,然后重启 Cloudreve。

Docker 单容器​

docker stop cloudreve
docker rm cloudreve
docker pull cloudreve/cloudreve:latest

# 参数与之前启动时保持一致,尤其是 -v 挂载的数据目录
docker run -d --name cloudreve \
-p 5212:5212 \
-v ~/cloudreve/data:/cloudreve/data \
cloudreve/cloudreve:latest

Docker Compose​

docker compose down
docker compose pull
docker compose up -d

升级之后​

使用了从节点的话,把从节点的 Cloudreve 也升级到相同版本,否则节点通信会报版本不一致。

:::tip生产环境建议固定镜像版本(如 cloudreve/cloudreve:4.x.y),读过更新日志再手动升级,不要依赖 latest。:::

从 v3 迁移到 v4​

官方提供了迁移工具,把 v3 数据库的数据转换后写入 v4 数据库。请先完整备份。

1. 备份配置​

备份现有 v3 的 conf.ini。

2. 准备 v4 程序和配置​

# 把 v4 主程序重命名为 cloudreve
mv cloudreve_v4 cloudreve

# 创建 v4 的数据目录
mkdir data

# 复制 v3 的配置文件到数据目录
cp conf.ini data/conf.ini

# 修改数据库连接信息
nano data/conf.ini

在 data/conf.ini 里,把 Database 的 Name 改成 v4 使用的新数据库名,或指定一个新的 SQLite 文件。请新建一个与 v3 分开的数据库,不要复用 v3 的。

3. 运行迁移工具​

./cloudreve migrate --v3-conf conf.ini -c data/conf.ini

-c 指定 v4 配置文件,--v3-conf 指定 v3 配置文件。工具会读取 v3 数据库,转换成 v4 格式写入 v4 数据库。数据量大时可能运行几分钟到几小时。

4. 启动 v4​

迁移完成后启动:

./cloudreve

迁移中断了怎么办​

重新运行迁移工具即可。Cloudreve 会把进度保存在 migration_state.json,再次运行时会从中断处继续。想从头开始迁移,请参考官方文档。

升级到 Pro​

参见官方文档。