Во-первых, как отметил ThorTL67 в комментариях, неплохо бы обновлять версию Rails постепенно, а не одним большим скачком. Таким образом, ваши проблемы с зависимостями будут менее сложными.
Проверьте, какую версию Bundler
вы используете, запустив bundle version
. Если эта версия старая, возможно, некоторые зависимости рассчитаны неправильно, и это может помочь обновить Bundler (gem update bundler
).
Затем перейдите к шагам, которые вы можете предпринять для обновления с 4.2 до «более высокой версии» Список ошибок, которые вы получили, показывает конфликты между гем-зависимостями. Вы можете попытаться решить эти конфликты один за другим.
Bundler could not find compatible versions for gem "activerecord":
In Gemfile:
rails (~> 5.2) was resolved to 5.2.1.rc1, which depends on
activerecord (= 5.2.1.rc1)
schema_plus_views was resolved to 0.3.1, which depends on
activerecord (~> 4.2)
Эта ошибка довольно проста. Он говорит вам, что для gem rails
требуется activerecord
v5.2.1, но для этого гема schema_plus_views
требуется activerecord
> = 4.2.0, но <5.0 (см. Объяснение ограничений </a> в RubyGems ). Так как это решить? Если вы проверите исходную страницу для schema_plus_views
, то увидите, что для activerecord
v5.2.1 пока что нет совместимой версии, и что она вряд ли скоро там появится: Любой план обновления этого драгоценного камня будет совместим с рельсами 5.2?
Так что в этом случае у вас есть несколько вариантов. Оставьте его в своем Gemfile и удалите зависимости от этого гема из своего кода; проверить наличие альтернативных драгоценных камней, которые дают вам необходимую функциональность; помогите обновить гем для поддержки рельсов 5.
Bundler could not find compatible versions for gem "rails":
In Gemfile:
rails (~> 5.2)
gaffe was resolved to 1.2.0, which depends on
rails (>= 4.0.0)
rails_admin was resolved to 1.3.0, which depends on
rails (< 6, >= 4.0)
rails_admin_globalize_field was resolved to 0.4.0, which depends on
rails (>= 4.2)
sql-logging was resolved to 3.0.10, which depends on
rails (>= 4.0)
Я на самом деле не уверен, в чем здесь проблема. Эти зависимости от самоцвета rails
, похоже, не противоречат друг другу, поэтому я постараюсь выяснить, в чем заключается самоцвет, закомментировав их один за другим, а затем снова попробовав обновление. Это может дать вам больше информации.
Bundler could not find compatible versions for gem "rake":
In Gemfile:
rake (~> 11.2)
capistrano (~> 3.6) was resolved to 3.11.0, which depends on
rake (>= 10.0.0)
derailed_benchmarks was resolved to 1.3.2, which depends on
rake (< 13, > 10)
Это также, похоже, не должно быть проблемой. Я бы попытался изменить вашу зависимость от рейка в вашем Gemfile с gem 'rake', '~> 11.2'
до gem 'rake'
и посмотреть, что происходит с сообщениями о зависимости.
Скорее всего, после всех этих шагов вы получите различные сообщения об ошибках. Вы должны решать их один за другим таким же образом. К сожалению, серебряной пули не существует, и обновление Rails может быть утомительным процессом, особенно когда ваше приложение зависит от множества гемов. Вы должны решить эту проблему, проблему за вопросом, удалив свои собственные зависимости от драгоценных камней, помогая сообществам драгоценных камней с обслуживанием / обновлениями или (в худшем случае) разветвив драгоценный камень и изменив код самостоятельно, чтобы он снова работал для вашего приложения. Удачи!