Каковы наилучшие методы отслеживания и/или автоматизации изменений схемы БД? Наша команда использует Subversion для управления версиями, и мы смогли автоматизировать некоторые из наших задач таким образом (продвижение на промежуточном сервере, развертывание проверенного кода на производственный сервер), но мы по-прежнему делаем обновления баз вручную. Я хотел бы найти или создать решение, которое позволяет нам эффективно работать на серверах с разными средами, продолжая использовать Subversion в качестве бэкэнд, через который обновления кода и БД распространяются на разные серверы.
Многие популярные программные пакеты включают в себя сценарии автоматического обновления, которые определяют версию БД и применяют необходимые изменения. Это лучший способ сделать это даже в более широком масштабе (в нескольких проектах, а иногда и в нескольких средах и языках)? Если да, существует ли какой-либо существующий код, который упрощает процесс или лучше всего сворачивать наше собственное решение? Кто-нибудь реализовал что-то подобное раньше и интегрировал его в перехватывание после перехвата Subversion, или это плохая идея?
В то время как решение, поддерживающее несколько платформ, было бы предпочтительным, нам определенно необходимо поддерживать стек Linux/Apache/MySQL/PHP, поскольку большая часть нашей работы находится на этой платформе.