seafile企业版7.0.14怎么升级更高版本

Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-1127.el7.x86_64
Architecture: x86-64
还有没有升级的必要。

企业版,还能升级吗。

企业版 7.0.14(CentOS 7,二进制)升级路径:7.0.14 → 7.1 → 8.0,停在 8.0,之后转 Docker 继续升到最新版。以下命令假设安装目录为 /opt/seafile,运行用户为 seafile。

一、准备

  1. 在客户中心(https://customer.seafile.com/ ) 下载 seafile-pro-server-7.1.x.tar.gz 与 seafile-pro-server-8.0.x.tar.gz,上传到 /opt/seafile/ 下(与现有版本目录同级)。

  2. 备份数据库与数据目录:

mysqldump -u root -p --all-databases --single-transaction > /backup/seafile-db-$(date +%F).sql
tar czf /backup/seafile-conf-data-$(date +%F).tar.gz \
    /opt/seafile/conf /opt/seafile/seafile-data /opt/seafile/seafile-license.txt
  1. 记录当前版本号、数据库类型与版本、是否使用 LDAP/AD、是否启用搜索、附件存储方式(本地或对象存储)。升级前不要执行 GC。

二、升级到 7.1

  1. 安装 Python 3 与依赖:
yum install python3 python3-setuptools python3-pip python3-devel gcc gcc-c++ -y
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy==1.3.8 \
    django-pylibmc django-simple-captcha python3-ldap
  1. 停止服务:
cd /opt/seafile/seafile-server-latest
./seahub.sh stop
./seafile.sh stop
  1. 解压新版本并设置属主:
cd /opt/seafile
tar xf seafile-pro-server-7.1.x.tar.gz
chown -R seafile.seafile seafile-pro-server-7.1.x
  1. 执行升级脚本:
cd /opt/seafile/seafile-pro-server-7.1.x
./upgrade/upgrade_7.0_7.1.sh
  1. 清空 Seahub 缓存(使用 memcached 时重启该服务):
rm -rf /tmp/seahub_cache/*
systemctl restart memcached
  1. 切换软链并启动:
cd /opt/seafile
ln -sfn seafile-pro-server-7.1.x seafile-server-latest
cd seafile-server-latest
./seafile.sh start
./seahub.sh start
  1. 修改两处配置:SeafDAV 的反向代理从 fastcgi 改为 proxy_pass;内置 Office 预览按 7.1 版本文档调整配置。

  2. 验证登录、上传下载、搜索、在线预览正常后,进入下一步。

三、升级到 8.0

  1. 安装依赖:
yum install python3-devel mariadb-devel gcc gcc-c++ -y
sudo pip3 install future
sudo pip3 install mysqlclient==2.0.1 sqlalchemy==1.4.3
  1. 停止服务:
cd /opt/seafile/seafile-server-latest
./seahub.sh stop
./seafile.sh stop
  1. 解压并执行升级脚本:
cd /opt/seafile
tar xf seafile-pro-server-8.0.x.tar.gz
chown -R seafile.seafile seafile-pro-server-8.0.x

cd /opt/seafile/seafile-pro-server-8.0.x
./upgrade/upgrade_7.1_8.0.sh
  1. 切换软链并启动:
cd /opt/seafile
ln -sfn seafile-pro-server-8.0.x seafile-server-latest
cd seafile-server-latest
./seafile.sh start
./seahub.sh start
  1. 检查配置:ccnet-server 组件已移除,但 ccnet.conf 仍需保留;若使用 Shibboleth,把 EXTRA_MIDDLEWARE_CLASSES 改为 EXTRA_MIDDLEWARE。

  2. 若使用了企业微信或钉钉的部门同步,补跑迁移脚本:

./seahub.sh python-env seahub/manage.py fix_work_weixin_departments_sync
./seahub.sh python-env seahub/manage.py fix_dingtalk_departments_sync
  1. 验证通过后,8.0 即为二进制部署的最后一站,保留旧版本目录与备份,不要删除。

四、迁移到 Docker

时点选在 8.0 之后。9.0 起社区版不再提供 CentOS 包,Elasticsearch 7.x 需单独部署,内置 Office 预览改为独立镜像;12.0 起二进制部署标记为 deprecated,13.0 起社区版不再支持二进制(系统依赖仅覆盖 Ubuntu 22.04/24.04、Debian 11/12/13)。

  1. 准备一台新服务器(Ubuntu 22.04 或 Debian 12),安装 Docker 与 Docker Compose。

  2. 按官方专业版 Docker 部署文档起一套环境,镜像版本与旧环境一致(8.0.x),先完成基础部署。

  3. 旧服务器停止全部服务:

cd /opt/seafile/seafile-server-latest
./seafile.sh stop
./seahub.sh stop
systemctl stop nginx redis elasticsearch
systemctl disable nginx redis elasticsearch
  1. 导出数据库并打包数据目录:
mysqldump -u root -p --all-databases --single-transaction > /backup/seafile-db-final.sql
tar czf /backup/seafile-data-final.tar.gz /opt/seafile/seafile-data /opt/seafile/conf
  1. 在新服务器上导入数据:资料库数据放回 /opt/seafile-data/seafile/,数据库导入容器内的 MariaDB(数据库使用容器自带的 MariaDB 10.11,不要沿用 CentOS 7 上的旧版本),具体命令见官方文档 Migrate from non-docker deployment to docker 的「Recover the Database」一节。

  2. 将 seafile-license.txt 放入 /opt/seafile-data/,确认授权用户数与有效期,然后启动:

cd /opt/seafile
docker compose up -d
docker compose logs -f
  1. 验证登录、同步客户端、历史版本、分享链接、搜索、在线预览、WebDAV 全部正常,再进入版本升级。

五、Docker 内逐版本升级

  1. 每次只跨一个大版本,顺序为 9.0 → 10.0 → 11.0 → 12.0 → 13.0 → 14.0。跨版本前先读该版本的 upgrade notes。

  2. 升级动作(以 9.0 为例):修改 .env 中的 SEAFILE_IMAGE 为 seafileltd/seafile-pro-mc:9.0-latest,然后:

cd /opt/seafile
docker compose down
docker compose pull
docker compose up -d
docker compose logs -f
  1. 每个版本完成后验证再继续,各版本需额外处理的事项:
  • 9.0:Elasticsearch 升级到 7.x 并重建索引;Office 预览改为独立镜像。
  • 10.0:Elasticsearch 升级到 8.x;可启用通知服务。
  • 11.0:LDAP 配置从 ccnet.conf 迁移到 seahub_settings.py 并执行 migrate_ldapusers.py;OAuth 配置相应调整;seahub_settings.py 增加 CSRF_TRUSTED_ORIGINS。
  • 12.0:新建 .env 文件;升级前清理 Activity 表,否则数据库升级耗时较长;SeaDoc 独立部署。
  • 13.0:WebDAV 不再支持 LDAP 账号直接登录,用户需自行生成 token;旧文件标签需迁移。
  • 14.0:多项配置从 seahub_settings.py 迁移到 .env;月流量限额配置项改名。
  1. 官方文档:https://manual.seafile.com/latest/upgrade/upgrade/ ,各版本的 upgrade notes 需逐一核对该版本的实际变更。