Canvas LMS 开源版本升级过程

发布于: 25 October, 2024
分享:

官方指引参考:https://github.com/instructure/canvas-lms/wiki/Upgrading

登录服务器后切换至 Canvas 安装目录,在升级 Canvas 之前,首先停止相关服务,防止升级过程中发生失误损坏数据,切勿在升级 Ruby 或 Bundler 之后关闭相关服务,将无法执行。

$ sudo /etc/init.d/canvas_init restart
$ sudo /etc/init.d/apache2 stop
$ RAILS_ENV=production /data/canvas/script/delayed_job stop
$ sudo systemctl stop postgresql

 

Git Pull

注意以下命令会覆盖当前 Canvas 安装实例的所有自定义修改内容

$ git fetch && git reset --hard origin/prod

 

如升级过程中遇到 ruby 版本报错,首先卸载先前版本,通过如下命令查看已安装版本:

$ sudo apt list --installed | grep ruby

执行卸载,例如 3.1 版本:

$ sudo apt remove ruby3.1 ruby3.1

 

安装 Ruby-3.3

$ sudo apt install ruby3.3 ruby3.3-dev
$ sudo apt autoremove

 

安装 Bundler 2.5.22

$ sudo gem install bundler -v 2.5.22

 

安装 Canvas 新版本依赖

$ bundle _2.5.22_ install
--- or ---
$ bundle install

 

升级 Node

如果当前 Node 版本不符合最新版本 Canvas 要求,通过传送门进行升级。

更新 browsers-list

$ npx update-browserslist-db@latest

 

编译素材

首先启动数据库:

sudo systemctl start postgresql
$ RAILS_ENV=production bundle exec rake canvas:compile_assets

编译结果如图所示:

 

 

升级数据库

升级数据库之前,先暂停缓存相关配置:

$ cd /where_is_your_canvas_installed
$ mv config/cache_store.yml cache_store.yml.bak
$ mv config/redis.yml redis.yml.bak

开始执行数据库 migration

$ RAILS_ENV=production bundle exec rake db:migrate:predeploy
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake db:load_notifications

升级过程如图所示:

 

常见问题:

 

问题1: bundler

$ bundle -v
/usr/local/bin/bundle:25:in `load': cannot load such file -- /usr/lib/ruby/gems/3.3.0/gems/bundler-2.5.22/exe/bundle (LoadError) ...

解决:

$ sudo gem install bundler -v 2.5.22

 

问题2: RAILS_ENV=production bundle exec rake canvas:compile_assets 报错

rake aborted!
Parallel::UndumpableException: NameError: uninitialized constant ApiRouteSet (Parallel::UndumpableException)

 

分享:

0 留言

留言

您的留言将被人工审核,请勿发表色情、反动言论。

您可能感兴趣

如何编译开源版本 Canvas iOS App

Instructure 公司秉承开源精神,提供了全套的 iOS 和 Android App 开源程序,爱好者或开发者可自行下载进行...

拓朗调研报告:微软凭借 OpenAI 夺回手机市场

微软入局 OpenAI 董事会已成定局,产品架构重大调整或已启动,微软是否收复智能手机这块失地,并为注入最强...

Canvas 安装 Rich Content Editor (RCE)

Canvas 安装 Rich Content Editor (RCE) 可以为用户提供一个功能强大且用户友好的文本编辑工具