i created
a custom staging environment in my rails app by adding new file config/environments/staging.rb
, same as config/environments/development.rb
and then added database config config/database.yml
staging:
adapter: sqlite3
database: db/staging.sqlite3
pool: 5
timeout: 5000
now, i want to make staging
the default environment
of my rails application instead of development.How to achieve it?
Ideally you have to set environment variable in .bashrc
like
export RAILS_ENV=staging
because rails
is fully dependent on environment variable. But like you said
adding RAILS_ENV in ~/.bashrc or ~/.bash_profile file of the user. will make this application depent on the console, shouldn't it just work independent of ~/.bashrc or ~/.bash_profile file?
Obviously, this is another option. Include this line at the top of config/boot.rb
ENV["RACK_ENV"] = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "staging"
This will work everywhere. I have tested in following places
- Rails 4
- Rake
- Server
- Console
- dbconsole
- It will pick the environment if it is set in
bashrc
or zshrc
etc.
You can try this in your application.rb
after Bundler.require
statement
ENV['RAILS_ENV'] ||= 'staging'
I have put
ENV['RAILS_ENV'] ||= 'custom_development'
in boot.rb at the last. It worked.
I have tested
- rake
- server
- console
- dbconsole
All Worked.