Невозможно опубликовать DACPAC в базе данных SQL Azure с помощью sqlpackage.exe - PullRequest
0 голосов
/ 13 мая 2018

При попытке применить DACPAC к базе данных SQL Azure я получаю из sqlpackage.exe следующее:

*** Произошла ошибка при создании плана развертывания.Развертывание не может продолжаться.Класс Element или Annotation SqlDatabaseOptions не содержит класс Property CatalogCollation.

Мне удалось использовать VS2017 с SSDT для создания пакета, а затем развернуть его в другой базе данных с помощью обозревателя объектов SQL Server, нопроисходит сбой при использовании sqlpackage.exe, найденного в

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 130

Уровень совместимости базы данных SQL Azure установлен на 140, поэтому я не уверен, использует ли SSDT (v 15.6.0) более современную версию sqlpacakage.exe или где я могу ее найти?Я также попытался запустить его из задачи Azure SQL Database Deployment VSTS и получить тот же результат.

Я попытался сопоставить параметры командной строки, найденные в в этом окне , но снова:Я все еще получаю ту же ошибку.

Существует ли версия sqlpackage.exe, которую использует SSDT, которую я не могу найти, или это параметр, который мне не хватает?

Дляссылка, это команда, которую я использую:

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 130> sqlpackage.exe /SourceFile:"generated.dacpac "/ Действие: Опубликовать /TargetServerName:"xxxxxxx.database.windows.net" / TargetDatabaseName: "xxxxxxx" / TargetUser: "xxxxxx" / TargetPassword: "xxxxxxx" / TargetTimeout: 120 TargetTimeout: 120

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Azure SQL - это служба PaaS, что означает, что он получает обновления прозрачно и относительно часто с новым уровнем совместимости.

Azure SQL теперь равен 150.
Когда вы создаете новую базу данных, она будет настроена с использованиемПоследняя версия.Однако на вашем компьютере, на ваших агентах развертывания может быть не развернуто последнее средство.
Если средство не соответствует уровню совместимости вашей базы данных, развертывание завершится неудачей.

Если вы развертываете с использованием VSTS HostedАгент вы не контролируете, и он всегда будет немного отставать.В этом случае самое простое решение - снизить уровень совместимости базы данных.
Это довольно просто, так как вам нужно просто выполнить оператор SQL для базы данных следующим образом:

ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL =  130;
0 голосов
/ 14 мая 2018

Возможно, вам нужно обновить Microsoft SQL Server Data-Tier Application Framework на вашем компьютере. Пожалуйста, скачайте последнюю версию здесь . После установки вы найдете его по следующему пути C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ DAC \ bin \ SqlPackage.exe ”и обновляет независимо от SSDT / SSMS.

SSMS имеет собственную версию SqlPackage. SSDT также имеет свою собственную версию, которую вы можете найти в C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 130.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...