通过 PowerShell 从本地 SQL Server 2016 将 dacpac 发布到 Azure SQL 托管实例失败“无法发布到 SQL Server 2014”
Posted
技术标签:
【中文标题】通过 PowerShell 从本地 SQL Server 2016 将 dacpac 发布到 Azure SQL 托管实例失败“无法发布到 SQL Server 2014”【英文标题】:Publishing dacpac to Azure SQL Managed Instance from on prem SQL Server 2016 via PowerShell failing "cannot publish to SQL Server 2014" 【发布时间】:2021-09-02 23:26:41 【问题描述】:我正在尝试使用下面的 PowerShell 将从 prem 服务器上的 SQL Server 2016 中提取的 dacpac 发布到 Azure SQL 托管实例,但这失败了下面的错误。
SqlPackage.exe /SourceFile:$DacPacFilePathName /Action:Publish /TargetServerName:$DatabaseServer /TargetDatabaseName:$DatabaseName /TargetUser:$User /TargetPassword:$Password
SqlPackage.exe : *** An error occurred during deployment plan generation. Deployment cannot continue.
At line:9 char:1
+ SqlPackage.exe /SourceFile:$DacPacFilePathName /Action:Publish /Targe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (*** An error oc...annot continue.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
A project which specifies SQL Server 2016 as the target platform cannot be published to SQL Server 2014.
如果我在 Azure 托管实例中创建一个新数据库并从中创建一个 dacpac,我可以使用相同的 PowerShell 命令来发布它并且它工作正常。
任何想法是什么导致了这个问题?
【问题讨论】:
【参考方案1】:错误已经在试图解释问题
将 SQL Server 2016 指定为目标平台的项目 无法发布到 SQL Server 2014。
所以here你可以在使用DataPacs时找到目标更改的Microsoft页面。
【讨论】:
【参考方案2】:解决了这个问题。
我们的部署服务器上的 $env:Path 设置为使用 SQLDB\DAC\140\SqlPackage.exe,但 SQL 托管实例仅适用于 SQLDB\DAC\150\SqlPackage.exe
【讨论】:
以上是关于通过 PowerShell 从本地 SQL Server 2016 将 dacpac 发布到 Azure SQL 托管实例失败“无法发布到 SQL Server 2014”的主要内容,如果未能解决你的问题,请参考以下文章
如何从 PowerShell 运行 SQL Server 查询?
Mysql数据库从本地导出 服务器上导入时报 ERROR 2005 HY000 Unknown MySQL ser
尝试使用 powershell 从 Azure 还原数据库时,Octopus 部署找不到 SQL 凭据
Powershell Install SQL Server 2022