Capistrano でデプロイした環境で rails c 出来ない問題

Capistrano でデプロイした環境で rails c 出来ない問題

Capistranoでデプロイした場合、環境によってはrails cするとUsageが表示されてconsoleが使えない問題があります。(自分の環境ではnginx (1.6.2)unicorn (4.8.3)capistrano (3.4.0)capistrano-bundler (1.1.4)capistrano-rails (1.1.2)capistrano-rbenv (2.0.3)capistrano3-unicorn (0.2.1)でした)

この場合、./binフォルダ内のrailsrakeスクリプトがbundlerのもので上書きされてrails cが使えなくなっている可能性があります。

上記の場合はbinフォルダをrailsが生成したものにすることで使えるようになります。

# bin/rails, bin/rake をrailsが生成したものに変更
bundle exec rake rails:update:bin

bin/railsbin/rakebin/setupが作られます。
新しく作られたbinshared/config/boot.rbを見るようになっているので、ここにboot.rbを作成します。

# シンボリックリンクされたパスが違ったので修正
ENV['BUNDLE_GEMFILE'] ||= '/var/www/myApp/current/Gemfile'
require 'bundler/setup'

これでrails cできるようになります。

bundle exec rails c staging

TAG

  • このエントリーをはてなブックマークに追加
kurashita
エンジニア kurashita kurashita

基本的にRuby on Railsで開発してます。最近はvue.jsも。好きな塔は円城です。