Гибкие параллельные миграции баз данных - PullRequest
1 голос
/ 22 сентября 2011

Я работаю в очень динамичной среде.У нас обычно есть ежедневные выпуски.Эта способность необходима из-за характера нашего бизнеса.Часто у нас есть обновления в базе данных.Мы создали домашнюю библиотеку миграции баз данных, однако в настоящее время нет концепции версии, и миграции не выполняются последовательно.Мы решили выполнить рефакторинг и запустить миграцию последовательно, однако теперь мы обнаруживаем, что для этого мы должны создать последовательность, и каждая миграция должна иметь уникальную версию.Как это сделать автоматизированным способом в среде, где несколько разработчиков работают параллельно?

Пример: 3 ветви объединяются для перехода в стадию, каждая ветвь имеет миграцию базы данных для запуска.Как определить, что предшествует другому и требует минимального человеческого взаимодействия.

1 Ответ

1 голос
/ 23 сентября 2011

Woooo agile ... Я работаю в среде, которая очень даже круче;)

Это не так просто, если одна ветвь подразумевает модификации схемы, которые не были учтены в другой ветке и т. Д. ... она, конечно, потерпит неудачу.

То, что вам нужно, - это решение для согласования ветвей, которое будет обрабатывать основные случаи, когда столкновение невозможно -

т.е. фрагмент кода, который будет читать ваш SQL, находить каждую таблицу ALTER TABLE, проверять, чтобы никакие два сценария не изменяли одни и те же таблицы, а затем, если это так, сравнить эти переменные, чтобы увидеть, можно ли их объединить и т. д.

Конечно, я могу написать это для вас, но ... может быть, кто-то уже с открытым исходным кодом "sqlmigrationscriptcombinatorofdoom".

GL;)

...