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 中已删除的用户

如果不小心误删了学生或者教师的账户怎么办?

Canvas 部署 Amazon(亚马逊) S3 存储方案

Canvas 支持服务器本地文件存储和云端文件存储,目前 Canvas 已完美支持亚马逊 AWS S3 云端存储方案,与本...

Canvas 数据库 PostgreSQL 维护贴士

通常 Canvas 管理员需要外部工具,监控和维护 Canvas 数据库,其数据库采用的是 PostgreSQL 数据库,当我们...

Canvas 安装 Rich Content Editor (RCE)

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