Miêu tả
Khi update Redmine lên phiên bản mới, tới bước update database, khi thực hiện command:
RAILS_ENV=production bundle exec rake db:migrate
thì bị lỗi:
rake aborted!
LoadError: cannot load such file -- json
/home/ec2-user/.gem/ruby/2.3/gems/activesupport-4.2.8/lib/active_support/core_ext/object/json.rb:2:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/activesupport-4.2.8/lib/active_support/core_ext/object/json.rb:2:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/activesupport-4.2.8/lib/active_support/core_ext/object.rb:12:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/activesupport-4.2.8/lib/active_support/core_ext/object.rb:12:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/configuration.rb:2:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/configuration.rb:2:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/railtie.rb:2:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/railtie.rb:2:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/engine.rb:1:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/engine.rb:1:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/application.rb:7:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/application.rb:7:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails.rb:11:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails.rb:11:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/all.rb:1:in `require'
/home/ec2-user/.gem/ruby/2.3/gems/railties-4.2.8/lib/rails/all.rb:1:in `<top (required)>'
/var/www/html/_redmine/redmine-3.4.6/config/application.rb:3:in `require'
/var/www/html/_redmine/redmine-3.4.6/config/application.rb:3:in `<top (required)>'
/var/www/html/_redmine/redmine-3.4.6/Rakefile:5:in `require'
/var/www/html/_redmine/redmine-3.4.6/Rakefile:5:in `<top (required)>'
/home/ec2-user/.gem/ruby/2.3/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
(See full trace by running task with --trace)
Theo như nội dung lỗi thì do Redmine không tìm thấy được library json
.
Và theo như nội dung ở issue này thì ở các phiên bản mới của Redmine sẽ không có thư viện json
trong Gemfile, do thư viện này đã được ship sẵn trong các phiên bản mới (từ 1.9.2 trở lên) của Ruby.
Vậy mà Ruby (version 2.3.7) trên server của mình lại không có .
Giải pháp
Cài lại Ruby thì khá phiền phức và mình cũng không rành về Ruby nên không muốn đâm đầu vào vấn đề này.
Nên chọn cách giải quyết ăn liền như sau:
- Thêm dòng `gem "json`` vào trong file Gemfile ở thư mục root của Redmine.
- Chạy lại command
bundle install --without development test
để cài lại các gem cần thiết trong local của Redmine.