Описание проблемы:
В нашем проекте у нас есть одна «производственная база данных» и множество «разработчиков». Мы хотим знать, как мы можем управлять и устанавливать изменения. У нас уже есть некоторые процедуры, но это занимает много времени и иногда вызывает ошибки.
Мы не можем потерять данные - поэтому мы не можем использовать «удаленную таблицу». Мы можем использовать только «изменить таблицу».
Наша фактическая «процедура создания версий БД» выглядит следующим образом:
- У нас есть таблица с именем [actual_version], которая содержит актуальную версию установленной схемы БД
- У нас есть файл с именем "changes_script.sql", который содержит все изменения базы данных - этот файл хранится в SVN
Когда разработчик хочет зафиксировать новую ревизию в SVN, он должен изменить change_script.sql, добавив
блок:
if ([acctual_version].version < "23")) {
--- sql script ----
updateVersionTo("23")
end if
Когда мы хотим обновить схему базы данных, мы просто «выполняем» change_scripts.sql
У кого-нибудь есть идея получше?