升级记录:从Growi 4.5.8到5.1.3的升级过程

概述和前提

我们正在使用在docker-compose中配置的Growi,使用在没有外部连接的环境中通过docker save保存的映像作为基础来运行。

虽然现有的Growi版本是4.5.8,但我想要升级到有页面树的5.1版本。
最初我轻松地考虑通过数据归档将内容导出并导入来完成,但查看文档后发现创建的归档只能在相同的版本间使用。

我在Growi的Slack上询问了一下,对方回答说直接在Growi上上传,我对此感到困惑,也尝试了更换图片但没有效果,所以不知道该怎么办。

发现

MongoDB的更新太重要了。

 

步骤

最初运行的是Growi4.5.8+mongoDB3.6的Docker Compose。
我在Growi的Dockerfile中将其更改为新版本并运行,但是Growi5.1要求mongoDB4.4或更高版本,导致出现错误。

我一直在看Growi的升级指南,但突然低头发现了关于MongoDB升级的内容。在搜索相关信息时,我找到了下面的Wiki链接:
https://dev.growi.org/5f6afa883a72dc0048e54ab7

结果我用以下的方法进行了更新。

    1. 在初期docker-compose.yml的状态下(Growi仍然是4系列),将mongoDB从3.6升级到4.0(替换镜像)。在执行docker-compose up的状态下,执行docker-compose exec mongo bash命令。检查mongoDB的功能兼容性版本(FCV):db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })。

 

    将mongoDB的功能兼容性版本更改为下一个版本:db.adminCommand({ setFeatureCompatibilityVersion: “4.0” })。
> docker-compose exec mongo bash
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
>  db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )

从3.6版本一次性直接升级到4.4版本是不可能的。
将docker-compose.yml文件中的mongodb版本从3.6改写为4.0,并将FCV设置为4.0。
暂停容器,再次将docker-compose文件中的mongodb版本从4.0改写为4.2,并进行相应的设置。
通过重复操作3.6 → 4.0 → 4.2 → 4.4的顺序,最终即使作为mongodb:4.4,容器也不再重复启动。

如果将MongoDB升级到4.4版本,可以将Dockerfile中的growi更新为4.5.8→5.1.3,然后运行docker-compose up命令,最终完成升级到5.1系列。接下来需要将Growi切换到维护模式,并进行V5格式的转换。

请参考以下链接

    GrowiDocs – mongoDBのアップグレード
广告
将在 10 秒后关闭
bannerAds