自分だけ好きなRDBMSの設定を使う方法、またはenvironmentの追加の仕方
知ってる人には当たり前、Rails本にもちゃんと書いてある、だけど意外と知られていない。
そんなtipsの1つとして、「周りに迷惑をかけずに自分だけ違うRDBMSや環境設定を使う = 自分だけのRAILS_ENV
を定義する」方法があるね。
ここでは、周りはみんなSQLiteだけど自分だけMySQLを使いたい場合を考えてみる。
RAILS_ENV
というのは、
$ ruby script/server --help => Booting Mongrel (use 'script/server webrick' to force WEBrick) Usage: server [options] -p, --port=port Runs Rails on the specified port. Default: 3000 -b, --binding=ip Binds Rails to the specified ip. Default: 0.0.0.0 -d, --daemon Make server run as a Daemon. -u, --debugger Enable ruby-debugging for the server. -e, --environment=name Specifies the environment to run this server under (test/development/production). Default: development -h, --help Show this help message.
の赤字のオプションのことだ。Railsのコードの中では、常にRAILS_ENV
という定数で参照できるようになってる。スクリプトのヘルプでは、test/development/productionのいずれかを選べ、って書いてあるけど、これは自分で定義して追加することができる。ここではfukuda
というRAILS_ENV
を定義してみよう。
まず、config/environments/
にある、development.rb
というファイルをfukuda.rb
という名前でコピーする。次に、config/database.yml
に、下の内容を追加しよう:
fukuda: adapter: mysql database: db_name username: db_username password: db_password host: localhost
そして、最後に
$ ruby script/server -e fukuda
としてサーバーを起動すればいい。これらの変更は、SCMにコミットしてしまっても問題ない。他の人にはまったく迷惑がかからないので便利。