2016-06-29 4 views
0

Наша ситуация такова: у нас есть среда разработки (локальная машина), на которой мы разрабатываем экземпляр LocalDB. У нас также есть тестовая среда в нашей сети, которая имеет собственную тестовую базу данных.Развертывание изменений базы данных в среде с защитой от брандмауэра

Когда мы развертываем приложение (ASP.NET) для клиента, мы используем сервер сборки TFS для создания пакета веб-развертывания, который мы отправляем им, чтобы они могли импортировать пакет в IIS при их принятии и производстве Окружающая среда. Их IIS и база данных находятся за брандмауэром (к сожалению, политики bigcorp), поэтому мы не можем использовать MSDeploy для прямого перевода нашего кода с нашего сервера сборки в свою среду.

Сначала я подумал о том, чтобы позволить SSMS генерировать сценарии изменений и связывать их с пакетом развертывания, который должен выполняться вручную, но я не мог найти способ автоматически включить их в пакет развертывания (какой тип разрушает точку наличия сервера сборки), поэтому мы подумали об использовании проекта базы данных, который мы можем создать, и который создает сценарии изменений для нас вместе с пакетами развертывания для кода.

У меня есть несколько вопросов по этому поводу:

  1. Может ли я генерировать дополнительные сценарии изменения, когда я хочу, чтобы развернуть на «автономную» окружающую среду? Как мне это сделать? Разве это не означает, что мне нужно подключение к базе данных с удаленным сервером, чтобы сравнить его с локальным сервером?
  2. Как узнать, что изменилось? Посмотрит ли он на локальную базу данных (вероятно, тестовую базу данных) во время процесса сборки, чтобы увидеть, что изменилось с прошлого раза? Или изменения, сохраненные в самом проекте?
  3. Могу ли я по-прежнему разрабатывать изменения базы данных в SSMS, или мне нужно сделать их в Visual Studio в проекте базы данных, чтобы они были подобраны?

Может ли кто-нибудь описать рабочий процесс, который работает в моей настройке, и делает то, что я пытаюсь сделать?

Может быть, само собой разумеется, но мы используем TFS 2013 с Visual Studio 2013 и SQL Server 2014.

+0

Если вы используете SQL проектов в SSDT, вы бы дать им файл dacpac из вашей сборки и, возможно, пакетный файл, они могут настроить для запуска SQLPackage и нажать изменения на их сервер. Это сделает разницу, чтобы увидеть, какие изменения необходимо применять. Я бы рекомендовал опубликовать профиль, чтобы помочь контролировать эти изменения. SQLPackage будет сравнивать ожидаемую схему в вашем dacpac с фактическим на сервере БД и генерировать сценарий изменений (или просто нажать изменения). Вы бы сделали свой dev в SSDT. https://schottsql.wordpress.com/2013/10/22/all-ssdt-articles/ –

ответ

0
  1. Да, вы можете использовать проекты баз данных в VS, которые производят DACPACs для представления базы данных.
  2. Во время развертывания он сравнивает DACPAC с целевой базой данных и создает скрипт diff на лету
  3. Использование VS. Сначала мы были настроены скептически, но действительно предпочитаем это сейчас.

http://www.dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

+0

Не могли бы вы ответить на все мои вопросы? Вы не решали ни одного из моих вопросов (по крайней мере, не отвечая на точные вопросы, которые я задавал). –

+0

Прошу прощения, я подумал, что ответил на ваши вопросы 1-3. Как я могу улучшить свой ответ? На какой вопрос (ы) не ответил? – chief7

Смежные вопросы