Развернуть проект базы данных, не зная целевой базы данных

У меня есть вопрос. Я привык использовать проект Teamcity + Database, который смог развернуть базу данных на всех серверах DTAP. Мне понравилось, как это работает — это позволяло мне развертывать в рабочей среде еженедельно в течение 2 минут.

Сейчас я работаю в компании, где процесс развертывания включает BATCH-скрипты и кучу альтер-скриптов. Затем есть таблица, которая отслеживает, какие скрипты изменений применялись к БД и на основе этого БД обновлялась.

Я предложил использовать проект базы данных с определенными конфигурациями развертывания, но вот проблема: нам не разрешен доступ к серверам принятия и производства. Поскольку мы не можем подключиться к ним, мы не можем выполнить развертывание на этих серверах, НИ использовать сценарий sql, сгенерированный проектом базы данных, поскольку мы не можем определить целевую БД.

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

Мой вопрос: есть ли элегантный способ решить этот проект и использовать какой-то вариант проекта БД, о котором я не знаю, который создает скрипт БД без необходимости знать целевую БД (возможно, ЕСЛИ СУЩЕСТВУЕТ все время?), или это просто BS, что у нас нет прав на доступ к этим серверам, и мы должны сосредоточиться на том, чтобы убедить их разрешить нам доступ?

Спасибо.


person Jochen van Wylick    schedule 10.04.2013    source источник
comment
Это звучит так, как будто у вас должна быть готовая база данных, а не инструментальное решение, которое отражает (по крайней мере, схему) вашу производственную БД. Развертывание скриптов против потенциально неизвестной схемы звучит рискованно...   -  person Jamie    schedule 12.04.2013


Ответы (1)


Вы можете создать dacpac и развернуть его в целевой базе данных из SSMS или с помощью командной строки sqlpackage.exe.

http://msdn.microsoft.com/en-us/library/ee210546.aspx

Это создает сценарий развертывания динамически во время развертывания.

Из интереса, какова ваша мотивация использовать развертывание проекта базы данных в пользу существующего процесса пакетного сценария?

person David Atkinson    schedule 11.04.2013
comment
Привет Дэвид - спасибо, я посмотрю на это. Мне не очень нравится кастомная реализация. В какой-то момент это сделал какой-то парень, который занимался пакетным скриптингом. Я предпочитаю проект БД из-за простоты использования И простоты развертывания, ПЛЮС возможность работать с объектами БД из Visual Studio. - person Jochen van Wylick; 23.04.2013