有关NodeBB从低版本1.7.x升级到最新的1.16.x版本

本文详细记录了一次将NodeBB从1.7.4逐步升级到1.16.x的过程,包括每个版本的升级步骤和遇到的问题。在升级过程中,作者强调了数据备份的重要性,并分享了如何解决插件不兼容问题的经验,特别是针对nodebb-plugin-emoji插件的故障排除和降级操作。
摘要由CSDN通过智能技术生成

有关NodeBB升级历险记

公司线上的论坛网站一直都是1.7.4版本,而且有不少地方感觉用起来不是很顺手,就想着应该给它升升级了,从1.7.4升级到最新的1.16.x版本;

注:不要直接跨版本升级到最高版本,会有数据错乱的问题;


升级实操

备份数据

在正式升级之前,理应做的一件事就是备份数据,包括MongoDB里的数据和整个NodeBB目录的数据;

  • MongoDB数据库数据,我是通过客户端进行备份的,略;
  • NodeBB目录数据备份;
tar -zcvf NodeBB.tar.gz NodeBB/

1.7.4–>1.8.x

进入NodeBB根目录,执行以下操作;

git fetch
git branch -r
git branch -v
git checkout v1.8.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

通过执行./nodebb upgrade之后,MongoDB数据库数据会兼容当前版本,我猜测是修改了数据结构,虽然MongoDB没有所谓的数据结构,反正应该是更新了数据;

1.8.x–>1.9.x

照着执行就行了;

sudo ./nodebb stop
git checkout v1.9.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.9.x–>1.10.x

照着执行就行了;

sudo ./nodebb stop
git checkout v1.10.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.10.x–>1.11.x

照着执行就行了;

sudo ./nodebb stop
git checkout v1.11.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.11.x–>1.12.x

照着执行就行了;

sudo ./nodebb stop
git checkout v1.12.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.12.x–>1.13.x

照着执行就行了;

sudo ./nodebb stop
git checkout v1.13.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.13.x–>1.14.x

这里会有点不同;

sudo ./nodebb stop
git checkout v1.14.x

当我们切换到1.14.x的时候,会出现一个提示,

Can't find Husky, skipping post-checkout hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook

不知道是不是报错,但是如果看着碍眼的话,执行如下操作:

rm -rf .git/hooks/
sudo npm i -D husky

然后再添加依赖和升级

## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.14.x–>1.15.x

sudo ./nodebb stop
git checkout v1.15.x

## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

1.15.x–>1.16.x

sudo ./nodebb stop
git checkout v1.16.x
## 如果报错就切换到root再执行
sudo npm i   
sudo ./nodebb upgrade
sudo ./nodebb start
## 可以查看下运行日志
sudo ./nodebb log

升级完到1.16.2之后,数据基本不会有问题,但是偏偏有个插件出了问题,就是nodebb-plugin-emoji这个插件,无法使用,看了一下是最新的3.5.1,控制台上面还写着兼容nodebb1.16.2版本,重新尝试了卸载重装卸载重装,都不起作用,反正这插件是废了。

error: [emoji] Failed to retrieve data for parse ENOENT: no such file or directory, open 'node_modules/nodebb-plugin-emoji/build/emoji/table.json' {"errno":-2,"code":"ENOENT","syscall":"open","path":"node_modules/nodebb-plugin-emoji/build/emoji/table.json","stack":"Error: ENOENT: no such file or directory, open 'node_modules/nodebb-plugin-emoji/build/emoji/table.json'"}

当然,我想着不应该如此,就尝试降低版本,降到了3.4.2,话说这个npm降版本也是折腾了我好一会时间;

[root@ylwl Platform]# npm view nodebb-plugin-emoji versions
 
[ '3.4.0',
  '3.4.1',
  '3.4.2',
  '3.4.3',
  '3.5.0-0',
  '3.5.0',
  '3.5.1' ]
  

前面有很多版本,我直接删掉了,就近看这几个版本,其中,我更新nodebb哪个版本的时候,就从nodebb-plugin-emoji@3.4.2直接升级到了3.5.1,所以我尝试通过命令安装3.4.2这个版本并启动;

npm install nodebb-plugin-emoji@3.4.2
sudo ./nodebb stop
sudo ./nodebb activate emoji
sudo ./nodebb build
sudo ./nodebb start

安装了nodebb-plugin-emoji@3.4.2,问题迎刃而解了,果然,官方承认的兼容性是不可靠的,而我的专业判断也是蛮准确的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值