Как синхронизировать версию базы данных MySQL и кода веб-приложения при разработке?

Исходные данные:

1) веб-приложение на php (ну да это не важно на каком языке), лежащее в git (ну или другой CVS)

2) база данных MySQL

3) Весь SQL-код хранится в БД в виде хранимых процедур.



Как поддерживать синхронизацию кода приложения и структуру БД и хранимые процедуры?

С процедурами дело конечно обстоит проще — можно каждую процедуру положить в отдельный файл, который отслеживается в git (ну или другой CVS)

А вот как быть со структурой таблиц? Генерить ручками при каждом изменении ALTER TABLE и класть их в отдельные файлы — трудоемко.

Может есть какие-то утилиты, которые позволяют делать это автоматически, а-ля Oracle Database Version Control?

Хочется иметь возможность при обновлении версии приложения — выполнить один sql-скрипт, который обновит базу данных. Если конечно такое возможно.
  • Вопрос задан
  • 7153 просмотра
Пригласить эксперта
Ответы на вопрос 4
slang
@slang
Если вы на PHP — попробуйте Doctrine, эта ORM поддерживает очень удобные миграции. Также можно прикрутить какую-то деплой-тулзу типа Capistrano, но смысл сводится всё равно к последовательному применению ALTER-конструкций, хоть и не совсем ручками.
Ответ написан
Комментировать
casey
@casey
Посмотрите вот сюда — habrahabr.ru/qa/1518/
Ответ написан
Комментировать
borisiq
@borisiq
Для БД можно рассмотреть инструменты на www.sqlaccessories.com/ — про цены не могу сказать, насколько дорого или дёшево. Для MS SQL лично использовал в проекте, декларируется также поддержка и других БД, в том числе MySQL. Сгенерированные программой скрипты можно в SVN как обычные текстовые файлы хранить. Собственно можно хранить и бинарные файлы, только просмотр изменений будет недоступен наверное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы