Rocket.chat0.73.02跨版本升级到Rocket.chat3.2.2

       Rocket.chat是一个非常不错的及时开源聊天工具。早在5、6年前就已经开始使用他们的东西。由于一直在用所以很少去升级它。不过,近排有时间进行升级。不过,我的版本是在太旧了0.73.02 它最新版本是3.2.2 ,所以跨度真的蛮大。

       由于我使用docker方式部署的,所以先侥幸心理,直接拉取最新的镜像,然后进行部署,发现直接Over了。

       经过仔细研究,主要是我的MongoDB的数据库版本太低了3.2,而现在最新的3.2.2使用的是4.0的数据库,中间跳过了3.4,3.6,4.0等版本。经验证,只要解决数据库的问题,其他都没有问题.

      MongoDB数据库在进行升级的时候,要求是要一个版本一个版本向上升级,所以不能从3.2直接上级到4.0. 具体可以参考MongoDB的官网,各种升级版本的介绍 例如 4.0。

      接下来,我按照目前版本为3.2升级到3.4为例子以docker方式把升级的逻辑走一遍,简单介绍一下:

一、运行要升级到的目标MongoDB的版本3.4

    通过以下命令拉取3.4版本

docker pull mongo:3.4

然后,容器运行3.4这个版本(如何使用容器技术运行3.4版本这个不多介绍,假设大家都有会使用docker)

二、通过以下查询功能兼容版本状态

docker exec -it rocketchat_mongo_1 bash -c 'mongo --eval "db.adminCommand({getParameter:1,featureCompatibilityVersion:1})"'
MongoDB shell version v3.4.24
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.24
{ "featureCompatibilityVersion" : "3.2", "ok" : 1 }

三、设置目标兼容版本为3.4

docker exec -it rocketchat_mongo_1 bash
root@c5d530e3e17c:/# mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:'3.4'})"
MongoDB shell version v3.4.24
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.24
{ "ok" : 1 }

四、文件异常处理通过
如若出现文件版本兼容错误的问题,可以通过以下命令进行修复

mongod --repair 

五、重复步骤1到步骤4,将版本从3.4升级到3.6,再从3.6升级到4.0

六、从docker镜像服务器拉取rocketchat最新的版本,直接运行即可

上图,我的打赏码和rocket.chat3.2.2的版本截图

Rocket.chat0.73.02跨版本升级到Rocket.chat3.2.2_第1张图片

Rocket.chat0.73.02跨版本升级到Rocket.chat3.2.2_第2张图片

 

 

你可能感兴趣的:(分享)