代码之家  ›  专栏  ›  技术社区  ›  widjajayd

无法将rails从5.0.6升级到5.1.4

  •  1
  • widjajayd  · 技术社区  · 7 年前

    我正在使用ruby 2.4.2和rails 5.0.6(系统运行良好),我正在尝试升级到rails 5.1.4,我将Gemfiles从gem“rails”、“5.0.6”更改为gem“rails”、“5.1.4”,并运行bundle update,

    我的问题是我什么时候更新了bundle, 为什么? 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

    Gemfile公司

    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)
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   widjajayd    7 年前

    在做了另一个研究和另一个错误消息后,我刚刚发现rails 5。x应该使用redis-rails而不是redis,我今天发现的另一个问题也是json(resque gem和sdoc需要),确保gem的“json”版本为>=Gemfile中列出的2.1.0版本,如果不是通常的话,bundler将安装1.8.6版本(它会在rails 5.x中生成一个错误),因此对于我发现的这两个错误,如果我发现另一个错误,我将更新我的答案

    Gemfile公司

    gem "redis-rails"
    gem 'json', '>= 2.1.0'
    
        2
  •  0
  •   Adim    7 年前

    这就是将gem依赖项修复到修补程序/次要版本的问题。

    你应该尝试使用 gem redis 仅在GEM文件中,然后运行 bundle update . 这应该可以解决问题。一些测试可能会失败,尤其是如果redis的公共api自较旧版本的redis以来已经更新。您可能需要找到更新的API才能正常工作。