Rails console default environment

15.5k views Asked by At

On my development machine:

$ bundle exec rails console
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "development"

This is expected. So far, so good.

Yet on my production server (to which I have deployed using Capistrano), I get exactly the same result:

$ bundle exec rails console
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "development"

On either machine, I can instead do:

$ bundle exec rails console production
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "production"

My question is: on the production server, shouldn't bundle exec rails console load the production environment by default, instead of the development environment? And if not, why not?

2

There are 2 answers

0
jigfox On BEST ANSWER

The rails executable can't know which environment should run on which machine.

you can put export RAILS_ENV=production in your ~/.bashrc or ~/.bash_profile file of the user you want to start the console with.

0
TomDunning On

RAILS_ENV is a variable like any other which will always default to development

if you like you can always open up '~/.bash_profile' on the production server and add this:

 alias sc="bundle exec rails console production"

then run source ~/.bash_profile to reload that file for your terminal session and you can just call sc to load up console.