Ramificações do Git permitem que você desenvolva recursos separados da base de código principal. No entanto, como o banco de dados ainda está em comum entre os ramos principal e de recurso, quaisquer alterações do banco de dados que você fizer dentro dos ramos de recurso também afetarão o ramo principal.
Adicionar algum erb ao seu arquivo database.yml permitirá que você trabalhe em um banco de dados que tem o nome do branch git no qual você está trabalhando atualmente. Portanto, agora seu código está isolado dos branches principais e também o banco de dados.
Em seu Gemfile:
group :test, :development do
gem 'git'
end
Dentro de config / database.yml:
development: ...
adapter: ...
database: appname_development_<%= Git.open('.').current_branch %>
min_messages: ...
host: ...
pool: ...
timeout: ...
host_names: ...