标签: schema-compare

从oracle数据库提取整个模式到另一个(java)(自动化)

我试图找到一个解决方案,我希望通过数据从一个oracle数据库对另一个oracle DB实现回归测试.

示例:数据库A添加一个表,我想从数据库A中获取数据并将其导入数据库模式B.这最终会失败,我会知道某种更改并且可以更正它.

我想在詹金斯自动化这个可以进行夜间测试.我找到了几个付费版本,但在项目的这一点上没有必要.

我正在使用Liquibase,但我无法找到Jenkins的插件.我知道Sql Developer可以做到这一点,但我希望这是自动化的.

如果有人有任何过去的经验或知道任何工具,我会非常感谢这些建议.

oracle liquibase schema-compare jenkins jenkins-plugins

6
推荐指数
1
解决办法
396
查看次数

模式比较检测相同存储过程的差异

我使用Visual Studio 2012架构比较工具与Microsoft SQL Server DAC包文件(dacpac)区分实际数据库.期望是数据库和文件是"相等的".但是,模式比较报告BodyScript了三个存储过程的属性差异,所有这些过程都包含大量动态SQL.但令人沮丧的是,在对象定义的实际差异中,存储过程的定义之间没有明显的差异.此外,我们已将脚本复制到许多不同的diff工具中以查找空格类型差异,但看起来这两个脚本是二进制相同的.我们已经玩了很多架构比较选项(忽略空格,忽略关键字大小写等),但似乎没有什么能解决这个问题.

在研究这个问题时,我遇到了类似的问题,发布在Microsoft Connect上,也发布在StackOverflow上,但似乎这些问题尚未解决.有没有人对解决这个问题的其他方法有任何建议?

sql-server stored-procedures schema-compare visual-studio-2012 dacpac

5
推荐指数
1
解决办法
1010
查看次数

是否可以在 Visual Studio 的架构比较中忽略 NOT FOR REPLICATION?

我有两个环境:开发和测试。Dev 有一个 SQL 实例。测试了三个使用合并复制的情况。

当我在开发和测试之间使用架构比较时,每个表总是被标记为不同,因为测试中的表有一些复制工件:

  • 生成的用于复制的唯一 ID:[rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [MSmerge_df_rowguid_DDDF85B24558D414B8FD278B2219C33A]
  • 主键标记为NOT FOR REPLICATION(我看到在架构比较选项的常规选项卡中有一个选项可以忽略它)
  • [repl_identity_range...]要求主键位于分配给该实例的范围内的约束

有没有办法repl_identity_range_...在运行模式比较时忽略 rowguid 列和约束?

sql-server replication merge-replication schema-compare visual-studio-2015

5
推荐指数
1
解决办法
1358
查看次数

VS 2015 架构比较差异未显示但已检测到

当我在 Azure 数据库上进行架构比较时,架构比较工具在底部显示“比较完成。检测到差异”,但中心屏幕保持空白,除了消息:

您可以将源架构与目标架构进行比较以确定它们之间的差异。然后,您可以更新目标架构以匹配您选择的数据库对象的源架构。根据目标架构类型,您可以直接更新目标或生成更新脚本。要比较两个架构,首先选择源架构和目标架构,然后选择比较。

我尝试重新输入我的所有凭据并重新克隆我的回购。

我还尝试将同一项目与不同的 Azure 数据库进行架构比较,结果确实显示出来了。

我的同事能够与完全相同的项目和远程数据库进行架构比较,显示更改。

azure schema-compare visual-studio-2015

5
推荐指数
1
解决办法
1325
查看次数

架构比较超时

数据库项目Azure SQL数据库之间的Visual Studio 2013中进行架构比较时,我不断收到以下超时错误:

错误1尝试对Microsoft.Data.Schema.Sql.SchemaModel.ISqlUser类型的元素进行反向工程时从SQL Server收到错误:超时已过期.操作完成之前经过的超时时间或服务器没有响应.

错误2 ExecuteReader需要打开且可用的连接.连接的当前状态已关闭.

我在Azure中托管的Windows Server 2012 R2虚拟机上执行此操作.

  • 允许在防火墙中使用1433端口
  • SQL(Azure)数据库服务器上允许VM的IP

我可以使用Visual Studio的SQL Server对象资源管理器查询数据库,因此我可以确定我的连接和帐户登录.

是否还有其他安全设置可以解决这些问题?

azure schema-compare visual-studio-2013 sql-server-data-tools azure-sql-database

4
推荐指数
1
解决办法
1378
查看次数

sqlPackage.exe 不包括部署脚本中删除的存储过程

我在 Visual Studio 中有一个 SQL Server 数据库项目,并且删除了一个现有的存储过程。我在本地也有一个数据库,其中存在确切的存储过程。

当我在 Visual Studio 中对两者运行架构比较时,在生成的架构比较窗口中,我可以看到将在生成的部署脚本中删除的存储过程。但是,当我从 Powershell 脚本调用 sqlPackage.exe 时,生成的部署脚本不包含存储过程的 drop 语句。有趣的是,当我对存储过程进行更改时,它会包含在生成的部署脚本中,并带有一个更改语句。

为什么 sqlPackage.exe 在删除 drop 存储过程语句但将其包含以进行更改时省略了它?我觉得这是我需要提供给 sqlPackage.exe 的参数设置,但他们似乎选择退出,而不是选择加入(https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7)。

以下是我从 Powershell 发出的命令:

& 'sqlPackage' '/Action:Script' "/SourceFile:$sourceDacpacFile" "/TargetFile:$targetDacpacFile" "/OutputPath:$outputPath" "/TargetDatabaseName:$targetDatabaseName" "/p:AllowIncompatiblePlatform=$allowIncompatiblePlatform" "/p:BlockOnPossibleDataLoss=$blockOnPossibleDataLoss" "/p:DropIndexesNotInSource=$dropIndexesNotInSource"
Run Code Online (Sandbox Code Playgroud)

sql-server schema-compare sqlpackage

4
推荐指数
1
解决办法
1691
查看次数

SSDT 如何从 DACPAC 文件创建新数据库?

目前使用 SqlPackage.exe 命令行工具通过将 DacPac 文件与目标数据库进行比较来生成脚本。如果数据库尚不存在,这将创建数据库。

我们现在想将其切换为使用 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();
Run Code Online (Sandbox Code Playgroud)

此时,ComparisonResult 有一条错误消息:{Error SQL0: Cannot open database "DeployTestDB" requests by the login. 登录失败。用户“myUsername”登录失败。}

c# schema-compare dacpac sqlpackage sql-server-data-tools

4
推荐指数
1
解决办法
4872
查看次数

模式比较-在填充源模型期间捕获了意外的异常:对象引用未设置为实例对象

我一直在Visual Studio 2017中的数据库项目中运行架构比较,执行此操作时,我在``错误列表''选项卡中收到以下消息:

源模型填充期间捕获了意外的异常:对象引用未设置为实例对象。

我发现了这个博客,这似乎是相同的问题,但是尽管尝试了几次,但建议的解决方案(使用“选择目标模式”窗口删除条目)仍然没有用。

比较可以(并且确实)可以在Visual Studio 2013中与相同的项目和数据库一起正常工作,因此我可以解决这个问题,但是很高兴知道是什么引起了该问题(并将VS2013抛在了后面!)

sql-server database-project schema-compare visual-studio-2017

4
推荐指数
1
解决办法
668
查看次数

导出模式比较升级脚本到transact-sql与visual studio 2012 premium

我有幸在工作中使用Visual Studio 2012 Premium.我给出的任务之一是在开发和系统测试数据库之间进行模式比较.这一切都很好,但是当我生成脚本移交给迁移团队时,我在标题处得到了这个:


/*
Deployment script for MyGloriousDatabase

This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/

GO
:setvar DatabaseName "MyGloriousDatabase"
:setvar DefaultFilePrefix "MyGloriousDatabase"
:setvar DefaultDataPath "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\"
:setvar DefaultLogPath "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\"

GO
:on error exit
GO
/*
Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
To re-enable the script after enabling SQLCMD mode, …
Run Code Online (Sandbox Code Playgroud)

schema-compare visual-studio-2012

2
推荐指数
1
解决办法
2128
查看次数

SQL Server数据工具忽略架构比较上的重构

我遇到了与此处描述的看似完全相同的问题:模式比较脚本生成忽略了SSDT重构重命名.实质上,SQL Server数据工具的重构组件不用于架构比较/更新.例如,不删除表的名称,而是删除具有旧名称的表,并创建具有新名称的表.不幸的是,我没有看到这个问题的公认答案.我发现了一个类似的问题,似乎是MSDN上同一个人提出的问题; 请参阅:重构重命名脚本生成将忽略重构重命名.同样,它看起来不像是一个可接受的答案.我真的想弄清楚如何使这个功能工作.有没有人有想法?

refactoring-databases schema-compare sql-server-2012 visual-studio-2012 sql-server-data-tools

2
推荐指数
1
解决办法
1332
查看次数

Visual Studio架构比较找不到生成的脚本

我正在使用Visual Studio 2017执行SQL Server架构比较。按下Schema Compare实用工具的“生成脚本”按钮,然后看到消息

“更新脚本成功生成”

但是,我看不到生成的脚本。知道这样做的去向或是否失败了吗?

在此处输入图片说明

sql-server schema visual-studio schema-compare sql-server-data-tools

2
推荐指数
2
解决办法
3697
查看次数