有关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,问题迎刃而解了,果然,官方承认的兼容性是不可靠的,而我的专业判断也是蛮准确的;

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

  1. Eclipse 版本升级:如何不卸载旧版本 Eclipse 实现在线升级到最新版本?

    文章目录 前言 一.网上没"升级 Eclipse"相关资料吗? 1.1.相关资料很少,我也生气 1.2.升级新版本与在线升级插件傻傻搞不清 二.版本升级准备 2.1.Eclipse ...

  2. android4.42 版本k2x,斐讯K1 K2最新v22.4.x以上版本通用刷第三方固件教程

    目前买的比较新的斐讯K1或者K2路由器要是按之前的刷机教程是不可行的了,所以要按下面的最新的方法来做才能成功. 支持的路由器原版固件版本:k1 v22.4.xx.xx版以上,k2 v22.4.xx.x ...

  3. 2019ug最新版本是多少_宝塔Linux面板7.4.2版本/Windows面板6.8版本请尽快升级到最新版本...

    宝塔Linux面板7.4.2版本/Windows面板6.8版本请尽快升级到7.4.3版本,因为这两个版本目前存在一个漏洞可能会被利用,如果你正好使用这两个版本的话请尽快升级到 Linux面板7.4.3 ...

  4. linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...

    CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache 由于最近工作中遇到了一个在比较老旧RedHat系Linux发行版系统上升级安装Apache ...

  5. 用友服务器系统版本低,客户端版本低于服务器端,请升级后再登录

    问题现象: 近期爆发了一轮"客户端版本低于服务器端,请升级后再登录"的报错高峰 问题模块: 其他模块 关键字:客户端版本低于服务器端 问题版本:用友t6企业管理软件" s ...

  6. linux升级apache版本,Apache2.4版本的安装或升级常见错误

    在安装或者升级成Apache2.4版本时可能会一些错误,我们在实际生产环境中Apache是需要定制编译参数的,以实现生产环境的服务定制,但是用旧的编译参数时一般会报这样的错误,如下: -略- chec ...

  7. mysql5.1升级5.5_mysql数据库迁移,由版本5.1升级至5.5.29,需要注意哪些

    caching_sha2_password认证插件提供更多的密码加密方式,并62616964757a686964616fe59b9ee7ad9431333433636131且在加密方面具有更好的表现, ...

  8. Centos(Linux)升级git最新版本

    在Linux/Centos服务器上,如果使用的git版本过低,使用的时候可能会由于低版本不支持遇到各种问题,比如Centos7系统自带的git版本一般是1.8.3.1的,比较旧,通常建议升级git后再 ...

  9. 如何升级Vue的版本 vue2.9.6升级到vue3.0

    背景:电脑使用多年,一直使用vue 2.x版本,项目开发过程中由于一个模块涉及的集成模块过多,导致需要进行定义的变量越来越多,代码出现冗余,因此在同事的推动下,鉴于vue 3.x的优化,故对自己本来使 ...

最新文章

  1. Java的多态(详尽版)
  2. ASP.NET 中HttpRuntime.Cache缓存数据
  3. mysql触发器运算_在MySQL中使用触发器计算列值?
  4. Firefox3.0火速前进 比2.0版快2到3倍
  5. 问题集合---《平时遇到的问题 + 参考解决方式》
  6. CF-1209 F. Koala and Notebook(建图BFS)
  7. 设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法。 设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义。
  8. Notepad++离线安装使用Markdown插件
  9. [ROS-Beginner]1.安装与配置ROS环境
  10. 计算机毕业设计源码—SpringBoot+Vue宿舍管理系统
  11. Mahony 互补滤波算法
  12. 计算机软件答辩ppt范文,计算机毕业答辩ppt模板范文.ppt
  13. GB2312-80 所有汉字排序-拼音
  14. 视觉里程计 特征点法
  15. logo一键制作器源码
  16. Win10下用Strokeit的方法
  17. pubwin2009服务端 修改系统时间方法
  18. python中时间模块datetime总结
  19. 康耐视VisionPro基础教程-GigE方式 连接相机
  20. Haswell芯配独显 华硕F450JF全新上市

热门文章

  1. 关于WinForm中Pannel的定位问题 May 18th, 2010
  2. 新生电脑Win10入门基础操作
  3. 发那科机器人接线电源_实用FANUC 0i各模块接线及功能图
  4. Android websocket闪退,退出手机浏览器,websocket会自动关闭,不是长持续吗
  5. 计算机怎么移动游戏,Uplay游戏怎么搬移 Uplay游戏搬移方法介绍
  6. 微信定位真的泄露了你的精确位置
  7. 微信群对服务器的要求,微信群运营必看:运营微信群必做的7点要求
  8. Android Studio报错——The device might have stale dexed jars that don‘t match the current version
  9. GII全球创新指数(2011-2018年)
  10. PMP新考纲 敏捷题目 (五)