2016-09-06 3 views
1

Мы используем проект SSDT в визуальной студии для управления развертываниями SqlServer. Мы создаем файл dacpac и отправляем его нашим клиентам.
Затем они обновляют свою БД, используя «Сервер Sql> Задача>Обновление приложения уровня данных».Параметры предварительного развертывания: Drop, Ignore & Exclude on USER не работает

Выполняя это, мы обнаружили, что он отбрасывает всех пользователей, которых нет в dacpac, но присутствует в SqlServer DB. (хотя пользователи не падают - если мы используем SqlPackage.exe инструмент командной строки)

Чтобы предотвратить это DROP, мы реализуем «Drop, Игнорировать & Исключить» настройки в настройках развертывания Advance в SSDT проекта Visual Studio. Но это кажется неработоспособным.

Ignore & Exclude settings Drop settings

ли я что-то отсутствует?
Как предотвратить утечку ПОЛЬЗОВАТЕЛЯ?

SQL Server Версия:
Microsoft SQL Management Server Studio 12.0.4213.0
Компоненты доступа к данным Microsoft (MDAC) 6.3.9600.17415
Microsoft .NET Framework 4.0.30319.42000
Операционная система 6.3.9600

ответ

0

Лучше всего упаковать все это для пользователей с профилем публикации, чтобы не отбрасывать пользователей, а также тем, как они могли легко использовать SQLPackage для внесения изменений. Я знаю, что есть пакет NuGet, содержащий DacFX сейчас и Эд Эллиот написал некоторый материал об использовании его в PowerShell здесь: https://the.agilesql.club/blogs/Ed-Elliott/DacFxed-Nugetized-DacFx-Powershell-Wrapper (см Solution 3)

0

Если клиента использует старую версию DacFX, «Игнорировать Пользователи "и т. Д. Будут игнорироваться.

Поскольку вы, по-видимому, не контролируете это, может возникнуть идея упаковать текущую версию вместе с вашим dacpac и предоставить клиенту сценарий развертывания.

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