Как организовать хранение последних изменений в БД проекта?

Нас 3 группы и мы все вместе делаем некоторые изменения в БД нашего проекта. Изменения делаются редко. Ничего не удаляют, а только добавляют таблицы и столбики в существующие. Но всё равно проблема, как-то трекать изменения. Никак не могу придумать, как бы сделать это в удобном виде.

Пробовал через файлик в репе, но совсем неудобно. А как вы решаете эту проблему? Может есть какие-то более удобные средства контроля версий и дифов для структуры БД?
  • Вопрос задан
  • 3365 просмотров
Пригласить эксперта
Ответы на вопрос 8
avalak
@avalak
Используйте миграции.
Ответ написан
Комментировать
@sergei-grigorev
Попробуйте CASE-средства, например Sybase PowerDesigner. Мы описываем модель БД, а затем генерируем sql-код для создания таблиц (есть функции обновления существующих БД). А чтобы все были в курсе изменений — на папку с моделями повесили оповещение. Как только кто-нибудь из разработчиков обновил модель — всем приходит оповещение по E-mail, с описанием того, что было обновлено. В итоге у нас всегда есть история изменений + диаграмма прямо перед глазами.
Ответ написан
Комментировать
Snowindy
@Snowindy
Одно из отраслевых решений для миграции БД.
Не идеальное, есть некоторые шороховатости, не удобно мигрировать данные…

Но это лучше чем без него
www.liquibase.org/
Ответ написан
Комментировать
@1nd1go
code.google.com/p/flyway/ — хороший тул, а главное концепция.

Мы в частности сначала сами делали файлики типа
01.init_tables.sql
02.add_one_table.sql
03.add_another.JIRA-1251.sql

Так и трэкали. Flyway делает многгое за вас, в частности делает метатаблицу, где отражает изменения и показывает текущую версию схемы.
Ответ написан
Комментировать
Shedal
@Shedal
Я по этому поводу когда-то большую фундаментальную статью написал, с рассмотрением разных подходов. Ознакомьтесь, если хотите: habrahabr.ru/post/121265/
Ответ написан
Комментировать
@RedQuark
Мой личный велосипед основан на ссылка. Это намного удобней одного большого файла плюс SVN. Можно сильно усложнить велосипед, добавив в скрипты комментарии с ключами указывающие на авторство, что бы это как то обыгрывалось. Но увы, велосипеды обычно удовлетворяют потребности только автора.
Ответ написан
Комментировать
stepio
@stepio
1. Разбейте всю БД на отдельные сущности
2. Определите стиль форматирования, например здесь:
www.dpriver.com/pp/sqlformat.htm
3. Git
Ответ написан
MuXaJIbI4
@MuXaJIbI4
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы