Как исправить «пружина не является частью пакета» при попытке запустить консоль рельсов в продакшене

avatar
kirqe
8 августа 2021 в 16:34
115
1
1

Я хочу иметь возможность запускать rails console в приложении, установленном вместе с Capistrano(3).

Итак, я добавил gem 'capistrano-rails-console', require: false в gemfile

следующее в файле deploy.rb

server 'ip', port: 2, user: 'user', roles: [:web, :app, :db], primary: true

и следующее в Capfile require 'capistrano/rails/console'

Проблема в том, что cap production rails:console приводит к следующей ошибке

00:00 rails:console
      01 $HOME/.rbenv/bin/rbenv exec bundle exec rails console -e production
Traceback (most recent call last):
    3: from bin/rails:7:in `<main>'
    2: from bin/rails:7:in `load'
    1: from /_some_path_/releases/20210808154555/bin/spring:14:in `<top (required)>'
/home/_user_/.rbenv/versions/2.7.2/lib/ruby/2.7.0/bundler/rubygems_integration.rb:346:in `block (2 levels) in replace_gem': spring is not part of the bundle. Add it to your Gemfile. (Gem::LoadError)

Как это исправить?

Источник

Ответы (1)

avatar
B Seven
8 августа 2021 в 17:49
1

Возможно, вам нужно добавить Spring в Gemfile.

Вы можете показать свой Gemfile?

Если у вас есть что-то вроде

group :development do
  gem 'spring'

Вы можете продвигать его над блоком.

kirqe
8 августа 2021 в 17:56
0

У меня он в группе разработки по умолчанию. Но, как я уже заметил, я хочу запустить rails console в продакшене. cap production rails:console И, как я понимаю, весна не должна использоваться в производстве

B Seven
8 августа 2021 в 18:04
2

Таким образом, он должен быть в группе production или вне группы. Вероятно, есть веская причина, по которой он обычно не запускается в производственной среде, поэтому могут быть некоторые побочные эффекты. В качестве альтернативы (и это лучше) вы можете удалить его из разработки или подавить при запуске консоли. FWIW, Spring доставил мне много проблем, поэтому я предпочитаю его не использовать.

kirqe
8 августа 2021 в 19:03
0

кстати DISABLE_SPRING=true не работает. Мне пришлось полностью удалить его из gemfile