无法将 rails 从 5.0.6 升级到 5.1.4
Unable upgrade rails from 5.0.6 to 5.1.4
我正在使用 ruby 2.4.2 和 rails 5.0.6(系统 运行ning 很好),我正在尝试升级到 rails 5.1.4,我将 Gemfiles 从 gem 'rails'、'5.0.6' 更改为 gem 'rails'、'5.1.4' 和 运行 包更新,
我的问题是当我进行捆绑更新时,为什么 redis-namespace 降级到版本 0.4.3 并且 resque 降级到版本 1.8.2 请参阅下面的跟踪控制台。
Using redis 4.0.1 (was 3.3.5)
Using redis-namespace 0.4.3 (was 1.5.3)
Using resque 1.8.2 (was 1.27.4)
这导致我无法 运行 rails 服务器,谢谢。
编辑 2
宝石文件
source 'https://rubygems.org'
gem 'rails', '5.1.4'
gem 'pg', '~> 0.19'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier'
# Use CoffeeScript for .js.coffee assets and views
# gem 'coffee-rails', '4.0.1'
gem 'coffee-rails', '~> 4.2'
# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'jquery-turbolinks'
# gem 'jquery-ui-rails', '~> 4.2.1' # please note 4.2.1 is the compatible one
gem 'jquery-ui-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', group: :doc
gem 'rake'
gem 'bootstrap-sass' # for twitter bootstrap
gem 'material_icons' # icon
gem 'sass-rails', '>= 3.2'
gem 'will_paginate'
gem 'ransack'
gem 'cancancan'
gem 'rmagick', require: false
gem 'carrierwave'
gem 'prawn'
gem 'prawn-table'
# resque
gem 'resque'
gem "sinatra", ">= 2.0.0.beta2", require: false
gem 'thor', '0.19.1'
# csv import
gem 'smarter_csv'
# redis action cable
gem "hiredis"
gem "redis"
# webserver
gem 'puma', '3.6.2'
编辑 3
Bundler could not find compatible versions for gem "redis":
In Gemfile:
redis (>= 4.0.1)
resque (~> 1.27.0) was resolved to 1.27.4, which depends on
redis-namespace (~> 1.3) was resolved to 1.3.1, which depends on
redis (~> 3.0.0)
这是将 gem 依赖项修复到 patch/minor 版本的问题。
您应该尝试仅在您的 Gemfile 中使用 gem redis
,然后再使用 运行 bundle update
。这应该可以解决问题。有些测试可能会失败,特别是如果 redis 的 public api 自旧版本的 redis 以来已经更新。您可能需要找到更新的 API 才能让一切正常工作。
在做了另一项研究和另一条错误消息后,我发现 rails 5.x 应该使用 redis-rails 而不是 redis 和我今天发现的另一个问题 json(resque gem 和 sdoc 需要),确保 Gemfile 中列出的 gem 'json' 版本 >= 2.1.0,否则通常捆绑器将安装版本 1.8.6(这会产生 rails 5.x) 的错误,所以我发现了这两个错误,如果我发现另一个
,我会更新我的答案
宝石文件
gem "redis-rails"
gem 'json', '>= 2.1.0'
我正在使用 ruby 2.4.2 和 rails 5.0.6(系统 运行ning 很好),我正在尝试升级到 rails 5.1.4,我将 Gemfiles 从 gem 'rails'、'5.0.6' 更改为 gem 'rails'、'5.1.4' 和 运行 包更新,
我的问题是当我进行捆绑更新时,为什么 redis-namespace 降级到版本 0.4.3 并且 resque 降级到版本 1.8.2 请参阅下面的跟踪控制台。
Using redis 4.0.1 (was 3.3.5)
Using redis-namespace 0.4.3 (was 1.5.3)
Using resque 1.8.2 (was 1.27.4)
这导致我无法 运行 rails 服务器,谢谢。
编辑 2
宝石文件
source 'https://rubygems.org'
gem 'rails', '5.1.4'
gem 'pg', '~> 0.19'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier'
# Use CoffeeScript for .js.coffee assets and views
# gem 'coffee-rails', '4.0.1'
gem 'coffee-rails', '~> 4.2'
# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'jquery-turbolinks'
# gem 'jquery-ui-rails', '~> 4.2.1' # please note 4.2.1 is the compatible one
gem 'jquery-ui-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', group: :doc
gem 'rake'
gem 'bootstrap-sass' # for twitter bootstrap
gem 'material_icons' # icon
gem 'sass-rails', '>= 3.2'
gem 'will_paginate'
gem 'ransack'
gem 'cancancan'
gem 'rmagick', require: false
gem 'carrierwave'
gem 'prawn'
gem 'prawn-table'
# resque
gem 'resque'
gem "sinatra", ">= 2.0.0.beta2", require: false
gem 'thor', '0.19.1'
# csv import
gem 'smarter_csv'
# redis action cable
gem "hiredis"
gem "redis"
# webserver
gem 'puma', '3.6.2'
编辑 3
Bundler could not find compatible versions for gem "redis":
In Gemfile:
redis (>= 4.0.1)
resque (~> 1.27.0) was resolved to 1.27.4, which depends on
redis-namespace (~> 1.3) was resolved to 1.3.1, which depends on
redis (~> 3.0.0)
这是将 gem 依赖项修复到 patch/minor 版本的问题。
您应该尝试仅在您的 Gemfile 中使用 gem redis
,然后再使用 运行 bundle update
。这应该可以解决问题。有些测试可能会失败,特别是如果 redis 的 public api 自旧版本的 redis 以来已经更新。您可能需要找到更新的 API 才能让一切正常工作。
在做了另一项研究和另一条错误消息后,我发现 rails 5.x 应该使用 redis-rails 而不是 redis 和我今天发现的另一个问题 json(resque gem 和 sdoc 需要),确保 Gemfile 中列出的 gem 'json' 版本 >= 2.1.0,否则通常捆绑器将安装版本 1.8.6(这会产生 rails 5.x) 的错误,所以我发现了这两个错误,如果我发现另一个
,我会更新我的答案宝石文件
gem "redis-rails"
gem 'json', '>= 2.1.0'