Хотелось бы узнать способы организации работы при разработке и поддержке базы данных.
Итак, имеется БД на MS SQL Server 2008. БД содержит множество схем, таблиц, представлений, функций и хранимок. Количество задействованных разработчиков невелико — 2-3 человека. Боевая база крутиться далеко (доступ по терминалу). Основная работа ведётся над хранимками/функциями, иногда изменяется (в основном дополняется) структура таблиц. Обновления небольшие, выходят с периодичностью в несколько дней.
Сейчас используется такая схема работы: все работают в Management Studio над одной базой, иногда отдельный разработчик разворачивает свою копию базы. Все сделанные изменения сохраняются в виде sql-скриптов, для обновления боевой базы эти скрипты запускаются последовательно вручную.
Недостатки очевидны:
— необходимо не забыть все сделанные изменения сохранять в виде скриптов
— неудобно "накатывание" изменений в виде ручного запуска десятка sql-скриптов
— не используется система контроля версий
Решил попробовать Visual Studio 2008 Database Edition: поставил поддержку SQL Server 2008, создал проект, импортировал существующую базу. Система контроля версий (используем bazaar) работает на ура.
Имеется ряд вопросов:
— скрипт обновления схемы боевой базы из разработческой создаётся с помощью Schema Comparison? Для этого нужна сама боевая база или её схема в виде файла dbschema. Как можно создать файл dbschema имея терминальный доступ к серверу БД?
— как удалять объекты из БД? Удаляю файл из Solution Explorer, но после билда в скрипте не появляется инструкции DROP.
Прошу поделиться опытом и дать советы по организации работы в нашем случае.