В нашем проекте около 20 разработчиков, но наше приложение использует сравнительно легкие базы данных.У нас есть коллекция из примерно 5 баз данных, каждая из которых очень мала и будет иметь менее 20 таблиц в каждой, ни в одной из которых нет миллионов строк или чего-либо большого.
У нас есть два варианта таблицычтобы управлять развитием баз данных с течением времени:
- Какой-то инструмент.В настоящее время мы используем проекты базы данных Visual Studio, которые содержат текущее определение схемы, и смотрим на справочную базу данных, чтобы сгенерировать скрипт diff.Затем мы используем этот сценарий сравнения, чтобы обновить эталонную базу данных.
- Используйте сценарии версий для создания базы данных с базового уровня.Сценарии вручную помещаются в систему контроля версий.Любая миграция данных для перемещения данных из старых столбцов / таблиц в новые будет частью этих сценариев.Где-то в БД будет записана версия, и при обновлении будут запускаться все сценарии между версией БД и текущей версией.
Второй вариант, похоже, широко используется, и я нашел здесь углубленное обсуждение:http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx
Проблема с тем, что у нас есть на данный момент, заключается в том, что у нас нет доступа к нашим производственным базам данных.Это означает, что для создания пакета выпуска нам нужно восстановить резервную копию Production в другое место, сгенерировать diff для этой ссылочной БД и передать сценарий команде рабочей БД.Таким образом, наш выпуск в производство отличается от других наших сред.
Это делает идею запуска версионных скриптов привлекательной, потому что мы используем одни и те же скрипты во всех средах, и нет никакой специальной работы при развертывании (например, ручное восстановление).прод к справочной БД).Но, учитывая, что у нас такая мелкомасштабная ситуация с БД, я чувствую, что вряд ли мы можем быть трудным случаем для инструментов БД.Нам нужно как можно более простое и легкое для понимания.
Имеют ли смысл такие инструменты, как набор RedGate, для такого сценария, или мы должны идти с версионными сценариями?Стоимость - это не столько проблема, сколько создание Ямы Успеха, когда обслуживание и развертывание БД максимально просты и автоматизированы.