Обновление Rails 3.2 до 4.0 - PullRequest
0 голосов
/ 29 апреля 2020

Я новичок в ruby на рельсах и пытается обновить устаревший проект с рельсами версии 3.2 до 4.0. Я постепенно обновляю версии, чтобы достичь версии 6. Я изменил версию rails в gem-файле на 4.0 (в gem lock установлена ​​старая версия 3.2) и выполнил команду rail update bundle. Это дает мне следующую ошибку для mongoid_rails_integrations.

    Bundler could not find compatible versions for gem "json":
  In Gemfile:
    json

    aws-sdk (~> 1.34.1) was resolved to 1.34.1, which depends on
      json (~> 1.4)

    carrierwave-video was resolved to 0.5.6, which depends on
      carrierwave was resolved to 0.11.2, which depends on
        json (>= 1.7)

    mongoid-simple-tags was resolved to 0.1.3, which depends on
      json (~> 1.8)

    simplecov was resolved to 0.13.0, which depends on
      json (>= 1.8, < 3)

Bundler could not find compatible versions for gem "mongoid":
  In snapshot (Gemfile.lock):
    mongoid (= 3.1.7)

  In Gemfile:
    mongoid-rspec (>= 1.4.6) was resolved to 1.13.0, which depends on
      mongoid (~> 3.1)

    mongoid_rails_migrations was resolved to 1.2.1, which depends on
      mongoid (>= 4.0.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "rails":
  In Gemfile:
    rails (= 4.0.0)

    mongoid_rails_migrations was resolved to 1.0.1, which depends on
      rails (>= 3.2.0)

Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    rails (= 4.0.0) was resolved to 4.0.0, which depends on
      railties (= 4.0.0)

    sass-rails (~> 3.2.3) was resolved to 3.2.6, which depends on
      railties (~> 3.2.0)

Но мой вопрос: mongoid_rails_migrations зависит от версии rails больше 3.2, что верно для rails 4.0. Тогда почему эта ошибка возникает. Любой, пожалуйста, помогите мне понять, будет заметно.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

У вас есть ряд противоречивых требований в вашей текущей попытке обновления. Я предлагаю начать с более простых, чтобы исправить, а затем вернуться к рельсам.

aws-sdk (~> 1.34.1) was resolved to 1.34.1, which depends on
  json (~> 1.4)

Попробуйте сначала ослабить версию aws -sdk, чтобы вы могли использовать json 1.8.

sass-rails (~> 3.2.3) was resolved to 3.2.6, which depends on
  railties (~> 3.2.0)

Попробуйте ослабить версию sass-rails, чтобы эта часть исчезла.

mongoid-rspec (>= 1.4.6) was resolved to 1.13.0, which depends on
  mongoid (~> 3.1)

mongoid_rails_migrations was resolved to 1.2.1, which depends on
  mongoid (>= 4.0.0)

Это может быть проблемой, но сначала разберитесь с вещами, которые я упоминал ранее.

Изначально я думал Вам может необходимо обновить rails, active * и railties вместе, поскольку их версии заблокированы. Текущее сообщение не обязательно предлагает это, но вы можете попытаться дать ему go тем не менее.

нужно ли мне удалять блокировку драгоценного камня перед установкой

Не рекомендуется , Вы можете получать обновления, которые удовлетворяют ограничениям в файле gem, которые нарушают работу вашего приложения. Когда кто-то пытается обновить такое древнее приложение, как правило, это очень хорошая идея, чтобы сознательно рассмотреть каждую отдельную зависимость и каково будет влияние изменения ее версии.

0 голосов
/ 29 апреля 2020

Можете ли вы попробовать использовать ту же версию sass-rails, что и для rails gem, т.е. если вы используете rails 4.0.0, тогда используйте ту же версию sass-rails. Также убедитесь, что вы используете ту же версию для рельсов кофе и обновите uglifier в вашем Gemfile

gem 'sass-rails', '~> 4.0.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'

PS Извините, я не могу оставлять комментарии из-за низкой репутации.

...