複数のバージョンの並行開発でDBスキーマが異なる場合、DBの接続先切り替えが非常に厄介。
そこでdatabase.yml内では式展開できることを利用し、
以下のようにするとgitブランチ名に応じて接続先を変更することが可能になる。
database.yml
default: &login
username: root
password: hogehoge
adapter: mysql
host: localhost
encoding: utf8
reconnect: true
pool: 5
development:
database: db_<%=
branch = `git symbolic-ref --short HEAD`.chomp
if branch == 'master'
'master'
elsif branch.start_with?('fix_')
'fix'
elsif branch.start_with?('pre_')
'pre'
else
'development'
end
%>
<<: *login
上記例
- master:db_master
- fix_で始まる:db_fix
- pre_で始まる:db_pre
- その他:db_development