Вот сценарий, который я написал для переключения между ветвями, которые содержат разные миграции:
https://gist.github.com/4076864
It не решает все проблемы, о которых вы упомянули, но с указанием имени ветки:
Я всегда вручную делаю это в нашем проекте, поэтому я подумал, что было бы хорошо автоматизировать этот процесс.