sqlpackage.exe игнорирует BlockOnPossibleDataLoss?

13

У меня есть dacpac, который установил для BlockOnPossibleDataLoss значение false, однако развертывание блокируется, когда я запускаю его с sqlpackage.exe, сообщая мне: «Столбец [a] удаляется, может произойти потеря данных».

Однако, когда я использую точно такой же профиль развертывания и публикуюсь из Visual Studio 2012, он проходит.

nojetlag
источник

Ответы:

10

Вы пытались выполнить sqlpackage.exe /p:BlockOnPossibleDataLoss=falseв командной строке?

Я просто использовал SQLPackage.exe для создания файла .dacpac моей тестовой базы данных, затем опубликовал его с /p:BlockOnPossibleDataLoss=falseопцией, и он перезаписал мою базу данных.

Макс Вернон
источник
Я попробовал это, однако это не помогло. Я немного сузил проблему. Я выполняю пакет в сценарии powershell, и он находится в блоке try catch. Кажется, что даже если установлен флаг sqlpackage.exe создает исключение (я бы ожидал иначе)
nojetlag
1
Это прекрасно сработало для нас при выполнении задачи развертывания базы данных в нашей сборке Visual Studio Team System для нашей базы данных Azure.
Дэн Чарпстер
2

Наконец, обнаружив проблему, я запускаю sqlpackage.exe в скрипте powershell, где обработка ошибок установлена ​​следующим образом

$Script:ErrorActionPreference = "Inquire"

Так как я никогда не получал Inquire, я предположил, что проблема была в sqlpackage.exe, однако после установки ErrorActionPreference у меня был включен другой скрипт powershell, оказалось, что во включенном скрипте также была установлена ​​ErrorActionPreference, но в «Stop». Тем не менее, я считаю, что если я установил BlockOnPossibleDataLoss = false, это не должно приводить к ошибке, но, по крайней мере, теперь у меня есть способ справиться с этим.

nojetlag
источник
2

У меня была та же проблема, и / p: BlockOnPossibleDataLoss = false не работает.

Окончательное решение было в моем случае, что это также должно быть установлено в настройках отладки файла проекта:

Настройки отладки проекта

Надеюсь, это поможет кому-то! :)

Кристиан Мюллер
источник
и если вы «публикуете» напрямую, вам придется настроить эту опцию и в «расширенной» опции публикации!
Pac0