Rails console not working on server
Solution 1
I'm assuming that you updated to rails 4
from version 3 and your app can't find the executables in the bin
directory. Run this to see your rails version:
$ rails -v
If your rails
version is 4 or above, try running this:
$ rake rails:update:bin
Source: Rails 4 Release Notes
6.1 Notable changes
- Your app's executables now live in the
bin/
dir. Runrake rails:update:bin
to getbin/bundle
,bin/rails
, andbin/rake
.
Solution 2
I am using capistrano to deploy, including the capistrano/bundler gem. Since the ./bin
directory is version controlled in Rails 4, we need to prevent Capistrano from linking it on deployments by removing bin from set :linked_dirs
.
Now in order to prevent bundler from overwriting the version controlled binstubs, we can add the line set :bundle_binstubs, nil
which will prevent capistrano-bundler from setting the --binstubs option when running bundle install.
My config/deploy.rb file now has these lines:
# Default value for linked_dirs is []
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')
set :bundle_binstubs, nil
Note the lack of the bin
directory in the :linked_dirs
line.
Solution 3
I have the same problem, and turns out when you deploy through cap shared/bin
is symlink to current/bin
.
Here's what works for me:
rm current/bin
mkdir current/bin
rake rails:update:bin
This should help, but it is somewhat a temporary solution, I'm trying to find out how to make cap not auto symlink-ing current/bin.
Solution 4
In case of Rails 5.2
I had to remove bin directory by running below command in project root directory.
rm -rf bin
and then I ran another command in project root directory:
rake app:update:bin
It will show you output like below:
create bin
create bin/bundle
create bin/rails
create bin/rake
create bin/setup
create bin/update
create bin/yarn
That's it.
Related videos on Youtube
user2609980
Updated on January 31, 2022Comments
-
user2609980 over 2 years
When I run
bundle exec rails console production
orrails console production
via SSH on the server in theCurrent
folder of the Capistrano deploy I get:Usage: rails new APP_PATH [options] Options: (...)
with an explanation to start a new app. Locally it works. Why can't I start a console remotely?
-
Eugene over 9 yearsDoes this work?
RAILS_ENV=production bundle exec rails console
-
user2609980 over 9 years@Eugene I get the same message as above. No idea why, rails and ruby are installed.
-
Rustam A. Gasanov over 9 yearsDid you load your environment? rvm gemset or rbenv or else
-
user2609980 over 9 yearsI started the (thin) server which is running. How can I load the environment?
rvm gemset
givesUnknown subcommand ' '
.
-
-
user2609980 over 9 yearsI did not update Rails. It is a clean install. I will try to run the command anyway.
-
Seb Wilgosz over 9 yearsThis helped for me. Thanks a lot.
-
RidingTheRails about 9 years"bundle exec rake rails:update:bin" worked for me and then "bundle exec rails c"
-
Lamar almost 8 yearsI tried this solution but got the follwoing error: "No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)". I am new to ruby and rake. Any idea what's going on?
-
johnrbnz over 2 yearsI had to slightly alter the command to
bundle exec rake app:update:bin
. -
johnrbnz over 2 yearsYes, had success with
bundle exec rake app:update:bin
.