Как я могу установить свои варианты развертывания для сценариев возрастающего выпуска проекта базы данных Visual Studio 2010?

Я только что начал использовать проект базы данных VS2010 справиться с выпуском обновления существующей базы данных.

Я хочу, чтобы вариант развертывания генерировал сценарий, который будет содержать команды, чтобы изменить мою существующую базу данных, а не создать совершенно новую.

Например, у меня есть 10 существующих таблиц - один из которых я заглядываю новой версии и я создаю некоторый новый sprocs. Я только хочу, чтобы развертывание написало сценарий таблицы Drop и Создало команды Процедуры.

Я использую VS2010 Premium.

Существует ли подход рекомендуемого стандарта, за которым я мог следовать к управлению DBS в проекте от начального создания до возрастающих выпусков?

Спасибо!

7
задан BIBD 19 May 2010 в 15:01
поделиться

2 ответа

В файле проекта .sqldeployment есть параметр «Всегда пересоздавать базу данных». Снятие отметки с этой опции приведет к автоматически сгенерированному сценарию SQL, который будет постепенно обновлять вашу базу данных, не удаляя ее предварительно.

Также существует опция «Сгенерировать операторы DROP для объектов, которые находятся в целевой базе данных, но не входят в проект базы данных». Вам нужно будет установить этот флажок, если вы хотите, чтобы таблицы, сохраненные процессы и т. Д. Удалялись, если вы удалили их в проекте базы данных. Это удалит любую таблицу и т. Д.которые пользователи могли создать самостоятельно для тестирования, отладки и т. д.

Для изменения параметров в файле .sqldeployment. Откройте файл в Visual Studio. Либо разверните проект базы данных в проводнике решений, дважды щелкните файл .sqldeployment (он, вероятно, будет в папке «Свойства» в проекте БД). Или откройте страницу свойств проекта базы данных и нажмите кнопку «Изменить ...» рядом с «файлом конфигурации развертывания». Установите или снимите флажки с нужных параметров при развертывании базы данных.

Я использую VSDBCMD.exe для создания и развертывания созданных мной сценариев в один клик. Работает очень хорошо. VSDBCMD использует файл .sqldeployment - файл .sqldeployment по умолчанию указан в файле .deploymanifest, но его можно переопределить, указав его в качестве параметра при выполнении VSDBCMD. Кроме того, я считаю, что Visual Studio использует VSDBCMD под прикрытием, когда он развертывает проект базы данных, но я просто предполагаю, что это так, поскольку функциональность практически идентична.

5
ответ дан 7 December 2019 в 03:12
поделиться

Я задал похожий вопрос некоторое время назад на форумах MSDN , и мне сказали, что рекомендуемый способ сделать это - использовать VSDBCMD. По сути, вы выводите файл схемы из проекта базы данных, который содержит всю информацию о вашей базе данных, а затем запускаете VSDBCMD для сравнения вашей схемы с целевой базой данных. Это, в свою очередь, создает сценарий для обновления целевой базы данных до вашей текущей схемы.

Обоснование этого подхода состоит в том, что только потому, что мы с вами можем думать, что знаем, как выглядит схема целевой базы данных, мы не можем быть уверены в этом, пока не позволим VSDBCMD провести сравнение. Кто знает, возможно, кто-то еще изменил схему в целевой базе данных без нашего ведома, поэтому наш сценарий изменения может закончиться неудачей по неизвестной причине.

Я действительно не был полностью удовлетворен этим подходом и в конечном итоге продолжил использовать мой «старый подход» для ручного кодирования моих сценариев изменений, когда это необходимо, но мне не терпится увидеть, изменилось ли что-нибудь в 2010 году, что делает это немного легче работать. Мне бы очень хотелось увидеть простой API, который делает то, что делает VSDBCMD, чтобы я мог собрать вместе графический интерфейс, чтобы упростить обновление целевой (в моем случае, клиентской) базы данных без того, чтобы человек, выполняющий обновление, должен быть администратором баз данных.

4
ответ дан 7 December 2019 в 03:12
поделиться
Другие вопросы по тегам:

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