Миграции баз данных в сложной ветвящейся системе

В нашем текущем рабочем процессе разработки мы ввели миграции баз данных (используя Ruckusing ), чтобы синхронизировать схемы БД наших разработчиков. Он отлично работает, довольно прост в использовании, но теперь мы перешли на git в качестве VCS и столкнулись со следующей проблемой в нашей системе управления версиями базы данных.

При проверке ветки, которая некоторое время находилась в разработке, может случиться так, что схема базы данных сильно отличается от схемы в ветке, из которой я исхожу. В некоторых случаях это вызывает конфликты базы данных. Логически кажется, что нам нужно выполнять миграции в зависимости от ветки, в которой мы были ранее, но это может очень быстро стать сложным и наверняка столкнется с проблемами у некоторых людей. И, насколько я знаю, не существует системы миграции баз данных, поддерживающей ветвь ??

Дополнительная сложность возникает при переключении на ветку функций, нам может потребоваться выполнить некоторые миграции вверх, а другие вниз ... технически это кажется Невозможно использовать наши текущие сценарии dbmigration, есть ли разумные альтернативы? Есть ли какие-либо предпочтительные способы работы с миграциями баз данных в очень активной и разветвленной системе разработки?

31
задан ChrisR 20 June 2011 в 09:33
поделиться