Наша ситуация такова: у нас есть среда разработки (локальная машина), на которой мы разрабатываем экземпляр LocalDB. У нас также есть тестовая среда в нашей сети, которая имеет собственную тестовую базу данных.Развертывание изменений базы данных в среде с защитой от брандмауэра
Когда мы развертываем приложение (ASP.NET) для клиента, мы используем сервер сборки TFS для создания пакета веб-развертывания, который мы отправляем им, чтобы они могли импортировать пакет в IIS при их принятии и производстве Окружающая среда. Их IIS и база данных находятся за брандмауэром (к сожалению, политики bigcorp), поэтому мы не можем использовать MSDeploy для прямого перевода нашего кода с нашего сервера сборки в свою среду.
Сначала я подумал о том, чтобы позволить SSMS генерировать сценарии изменений и связывать их с пакетом развертывания, который должен выполняться вручную, но я не мог найти способ автоматически включить их в пакет развертывания (какой тип разрушает точку наличия сервера сборки), поэтому мы подумали об использовании проекта базы данных, который мы можем создать, и который создает сценарии изменений для нас вместе с пакетами развертывания для кода.
У меня есть несколько вопросов по этому поводу:
- Может ли я генерировать дополнительные сценарии изменения, когда я хочу, чтобы развернуть на «автономную» окружающую среду? Как мне это сделать? Разве это не означает, что мне нужно подключение к базе данных с удаленным сервером, чтобы сравнить его с локальным сервером?
- Как узнать, что изменилось? Посмотрит ли он на локальную базу данных (вероятно, тестовую базу данных) во время процесса сборки, чтобы увидеть, что изменилось с прошлого раза? Или изменения, сохраненные в самом проекте?
- Могу ли я по-прежнему разрабатывать изменения базы данных в SSMS, или мне нужно сделать их в Visual Studio в проекте базы данных, чтобы они были подобраны?
Может ли кто-нибудь описать рабочий процесс, который работает в моей настройке, и делает то, что я пытаюсь сделать?
Может быть, само собой разумеется, но мы используем TFS 2013 с Visual Studio 2013 и SQL Server 2014.
Если вы используете SQL проектов в SSDT, вы бы дать им файл dacpac из вашей сборки и, возможно, пакетный файл, они могут настроить для запуска SQLPackage и нажать изменения на их сервер. Это сделает разницу, чтобы увидеть, какие изменения необходимо применять. Я бы рекомендовал опубликовать профиль, чтобы помочь контролировать эти изменения. SQLPackage будет сравнивать ожидаемую схему в вашем dacpac с фактическим на сервере БД и генерировать сценарий изменений (или просто нажать изменения). Вы бы сделали свой dev в SSDT. https://schottsql.wordpress.com/2013/10/22/all-ssdt-articles/ –