我已经使用SqlPackage.exe成功地将DACPAC发布到SQL Server 2008-2012实例,这是由SQL Server数据工具(通常在C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin)中安装的.但是,在尝试使用相同的SqlPackage.exe将2014目标DACPAC发布到SQL Server 2014实例时,我得到以下内容:
*** Could not deploy package.
Internal Error. The database platform service with type Microsoft.Data.Tools.
Schema.Sql.Sql120DatabaseSchemaProvider is not valid. You must make sure the
service is loaded, or you must provide the full type name of a valid database
platform service.
Run Code Online (Sandbox Code Playgroud)
我找到了关于此的最少信息; 我发现最接近的是发布到Azure 的问题.
我一直在使用SSDT补丁,但我猜测我拥有的SqlPackage.exe(显示11.0.2902.0版本)简直是不兼容的.我能够使用Visual Studio 2012的Publish命令发布到同一个实例,因此实例本身似乎不是问题.
是否有更新版本的SqlPackage支持将2014 DACPAC发布到2014服务器?还是另一种可编写脚本的方法呢?
我使用SSDT为Visual Studio 2012 在这里和使用它的命令行工具SQLPackage.exe来发布.dacpac文件.
我想把它发布到SQL Server database project.我正在尝试使用本指南中的参数,但无法找到如何操作的方法.
我怎样才能做到这一点?
publish database-project dacpac sqlpackage sql-server-data-tools
我正在使用 azure devops 通过部署组将数据库部署到虚拟机。我已经验证系统变量路径是正确的,并且当我登录虚拟机并尝试使用 powershell 运行它时它可以工作。我不知道为什么它没有找到它。有什么想法吗?谢谢
我有一个针对SQL Server 2012 RC0数据库的SQL Server数据库项目.该项目是在Visual Studio 2010 + SQL Server数据工具CTP4中创建的.项目类型与常规Visual Studio 2010数据库项目不同(它是SQL Developer Tools CTP3 Juneau的下一个版本).
它在IDE中部署得很好.如何通过命令行部署它?
我尝试过VSDBCMD.exe,但它需要一个不是由新项目类型创建的.deploymanifest文件.
我有一个Visual Studio数据库项目(DACPAC),其中包含许多SQL序列.但是,当我部署DACPAC时,它总是将序列值重置为Create脚本中包含的默认值(在本例中为1).例如
CREATE SEQUENCE [dbo].[MySequence]
AS INT
START WITH 1
INCREMENT BY 1;
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种方法来指示DACPAC忽略序列起始值,或者某种方式让DACPAC恢复正确的值作为部署后的步骤吗?
提前致谢
sql-server visual-studio dacpac sqlpackage sql-server-data-tools
我使用maven,Microsoft SQL Server Management Studio 17。SQL Server版本是14.0.1000.169。当我构建项目时,它给出以下错误并且构建失败
“sqlpackage.exe”不被识别为内部或外部命令、
可操作程序或批处理文件。
[错误] 执行期间发生以下错误:
[错误] 'sqlpackage.exe' 未被识别为内部或外部命令,
[错误] 可操作程序或批处理文件。
我找不到问题所在
我正在Windows机器上使用sqlpackage构建数据库dacpac。该项目包含对master.dacpac
我将dacpac移至Linux计算机(docker mssql-server-linux映像)并还原数据库。
deploy-database.sh
# publish dacpac using sqlpackage
./sqlpackage/sqlpackage /Action:Publish /sf:"/MyDb.dacpac" /tu:sa /tp:Password1 /tdn:MyDb /tsn:localhost
Run Code Online (Sandbox Code Playgroud)
错误:
没有提供文件供参考master.dacpac; 部署可能会失败。创建包时,原始引用文件位于C:$(Windows机器路径)\ MASTER.DACPAC。初始化部署(失败)在部署计划生成期间发生错误。部署无法继续。错误SQL0:无法解析对名为“ master.dacpac”的源中的外部元素的引用,因为未加载此类源。警告SQL72025:没有文件提供给参考master.dacpac。部署可能会失败。创建包时,原始引用文件位于C:$(Windows机器路径)\ MASTER.DACPAC。
添加引用时发生错误。部署无法继续。命令'/ bin / sh -c sh /deploy-database.sh'返回了非零代码:1
我尝试master.dacpac直接添加到项目中,也将其复制到docker映像,但是发生相同的错误。
如何在引用了master.dacpac的Linux环境中还原dapac?
我正在为我们的MSSQL项目使用SSDT(和sqlproj).发布到每个环境时,我们需要设置一些变量.
这在我们为所有变量赋值的大多数环境中都很有用,但是当我们发布到我们的实时数据库时,我希望能够使DomainPrefix成为空白字符串.
当我尝试更改Live.profile.xml以将DomainPrefix设置为无值时,我收到错误:"生成部署计划期间发生错误.部署无法继续.缺少以下SqlCmd变量的值:DomainPrefix."
这就是我希望Live.profile.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<TargetDatabaseName>DB_NAME</TargetDatabaseName>
<DeployScriptFileName>DB_NAME.sql</DeployScriptFileName>
<TargetConnectionString>CONNECTION_STRING</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
<ItemGroup>
<SqlCmdVariable Include="DomainPrefix">
<Value></Value>
</SqlCmdVariable>
<SqlCmdVariable Include="Environment">
<Value>live</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何将SqlCmdVariable设置为空值或使其成为可选变量?
使用:
我们正在使用Sql Server数据库项目使用SqlPackage.exe从DacPac创建部署脚本.我们在各种环境中设置了不同的SQL Server文件组.在部署时,我们要排除文件组,因为我们希望在默认文件组中创建对象.在数据库项目设置中,默认文件组不会从PRIMARY更改.
这在尝试部署到默认文件组不是 PRIMARY 的环境时会出现问题,因为包含以下代码...
ALTER DATABASE [$(DatabaseName)]
MODIFY FILEGROUP [PRIMARY] DEFAULT;
Run Code Online (Sandbox Code Playgroud)
有没有办法防止在部署SQL中生成此问题?
我从 SQLPackage 收到此错误:“已添加具有相同键的项目”是什么意思?谷歌不会帮助我..
"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe" /Action:DeployReport /SourceFile:"XXX.dacpac" /Profile:"publish.xml" OutputPath:"Report.xml ”
正在为服务器 'srv' 上的数据库 'XXX' 生成报告。
*已添加具有相同密钥的项目。
不创建输出文件。
从 Visual Studio 作品生成脚本(我得到一个脚本)。我在同一个解决方案中对三个项目进行了测试。只有一个创建 DeploymentReport 文件。
发表作品。
sqlpackage ×10
sql-server ×6
dacpac ×3
azure-devops ×1
dac ×1
docker ×1
publish ×1
sqlcmd ×1
sqlproj ×1