- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前使用 SqlPackage.exe 命令行工具生成脚本,通过将 DacPac 文件与目标数据库进行比较。这将 Create the database if it doesn't already exist .
我们现在想将其切换为使用 Microsoft.Data.Tools.Msbuild Nuget 包(使用 C# 部署),但是当数据库容器不存在时,使用 SchemaComparison 进行比较会失败。似乎没有太多与包相关的文档。
这个包中是否有任何工具可以让我在比较之前创建一个空的数据库容器?
我目前正在使用以下代码(在与现有数据库进行比较时有效):
SchemaCompareDacpacEndpoint sourceDacpac = new SchemaCompareDacpacEndpoint(@"C:\DeployDB.dacpac");
SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
csb.DataSource = @".";
csb.InitialCatalog = "DeployTestDB";
csb.IntegratedSecurity = true;
SchemaCompareDatabaseEndpoint targetDatabase = new SchemaCompareDatabaseEndpoint(csb.ToString());
SchemaComparison comparison = new SchemaComparison(sourceDacpac, targetDatabase);
comparison.Options.DropObjectsNotInSource = true;
comparison.Options.BlockOnPossibleDataLoss = false;
comparison.Options.TreatVerificationErrorsAsWarnings = true;
comparison.Options.ScriptDatabaseOptions = true;
comparison.Options.GenerateSmartDefaults = true;
SchemaComparisonResult comparisonResult = comparison.Compare();
此时,ComparisonResult 有一条错误消息:{错误 SQL0:无法打开登录请求的数据库“DeployTestDB”。登录失败。用户“myUsername”登录失败。
最佳答案
看看 Microsoft.SqlServer.Dac.dll 中的 DacServices 类。
代码看起来像这样:
using Microsoft.SqlServer.Dac;
class Program
{
static void Main(string[] args)
{
DacServices ds = new DacServices(@"Data Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated Security=true");
using (DacPackage dp = DacPackage.Load(@"C:\temp\mydb.dacpac"))
{
ds.Deploy(dp, @"DATABASENAME", upgradeExisting: false, options: null, cancellationToken: null);
}
}
}
关于c# - SSDT 如何从 DACPAC 文件创建新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214736/
环境: 使用 Visual Studio 2013 Update 4 中的 SQL Server 数据库工具创建用于发布数据库的 DacPac。 使用 TFS 构建来构建和删除数据库项目。 使用 Sq
我正在用数据在表 xxx 中删除一列。 DACPAC 正在生成如下检查。 IF EXISTS (select top 1 1 from [dbo].[xxx]) RAISERROR (N'Ro
我有一个 dacpac 文件,我正在使用 DacServices 库通过应用程序进行部署。我有以下代码可以做到这一点: var dp = DacPackage.Load(dacpacPath); va
我们希望将 dbproj 升级为 sqlproj,以便我们可以将其指向新的 SQL 2012 数据库。目前我们有一个程序可以读取 .dbschema xml 文件以查找所有表和列并从中检索信息。我们使
我正在做一些自动化,并且正在将一些 10-15 个古怪的旧脚本重写为一个简单的单元,这可以: 生产环境MsSql2012数据库方案导出 在开发环境中将数据库方案导入MsSql2012 我使用 Micr
我有一个 .dacpac 文件,它被 MSBuild 调用并发布到 QA 数据库进行测试。此发布失败,我从他们那里得到的错误是一般的“发生错误”消息。我希望我可以从 dacpac 生成部署脚本并遍历它
我正在尝试使用 sqlpackage.exe 在租户上部署 dacpac。 目前,我正在向将部署它的帐户授予 SysAdmin 或 db_owner 权限,并且它工作正常。 但是在生产中,如果目标租户
是否可以在不部署 DACPAC 的情况下针对数据库测试它?如果没有发现错误,Action=Deploy 的 sqlpackage.exe 将部署它,Action=Report 将只生成包含更改列表的报
我使用生成的版本号从自动构建生成 DACPAC 文件。虽然在 sqlpackager 操作期间很有用,但我需要能够在对文件执行任何操作之前确定 DACPAC 的版本号。 我可以使用什么工具(当然是自动
我想阅读 DACPAC 的内容以获取架构、表等的列表。 最佳答案 是的。您可以使用 DacFx为了这。 DacFx Public Model Tutorial : // Load from a d
我有一个 Visual Studio 2013 SQL 数据库项目,它创建了一个 DACPAC 文件,用于使用 SQL Server Management Studio (SSMS) 中的“部署数据层
我很高兴编写了一个使用以下内容的产品:Sql Server 数据库项目和生活一直很美好,直到我们发现升级中存在问题。 当我们创建表、存储过程和各种其他数据库工件时,一旦部署在客户处,他们就可以将自己的
当我尝试发布数据库项目时,在创建发布预览...时,出现此错误:找不到文件“C:...[DatabaseProjName]\sql\debug[DatabaseProjName].dacpac”。我如何
我有一个 SSDT(Sql Server 数据库项目),它引用外部 .dll(C# 类库)以提供一些 CLR 功能。如果我在本地部署/发布一切正常,但远程使用 Microsoft.SqlServer.
这个问题在这里已经有了答案: How to include created database project created dacpac into a cs project (3 个答案) 关闭
我正在尝试通过 IIS 网站和 SQL 部署在 Azure DevOps 中部署我的项目。但是,我正在努力部署 SQL 部分,因为我的构建工件中没有 .dacpac 文件。我如何生成它,因为我尝试过的
原始问题: 尝试使用 .dacpac 文件升级在测试 VM 中创建的空白数据库,但收到以下错误消息: Error SQL72014: .Net SqlClient Data Provider: Msg
我有一个 VS2012 数据库项目,其中包括表、存储过程、 View 等。 然后我有第二个数据库项目,其中包含对第一个项目的数据库引用。我确保从“项目属性 -> 调试 -> 高级”菜单中选择了“包含复
我找不到有关如何在 dacpac 中打包部署贡献者的任何引用资料。 我们正在使用 DacServices.Deploy Method将我们的数据库作为 dacpacs 部署到 SQL Server。
我向供应商提供了 SQL-Server 数据库的备份,他们进行了更改并向我寄回了 DACPAC。如果我使用 SQLPackage.exe 将该 DACPAC 部署到原始数据库,它会删除我表中的数据
我是一名优秀的程序员,十分优秀!