SQL Delta for MySQL是一款数据库对比工具,主要用于比较SQL数据库的结构和数据差异,并生成同步脚本。软件可检查表结构、存储过程、函数、视图等数据库对象。软件支持数据库模式和表数据对比,可将一个数据库的结构或数据同步到另一个数据库,采用选项卡式界面,可同时处理多个比较项目,适合数据库开发、维护和测试场景使用。对于需要维护多个数据库环境的用户来说,SQL Delta for MySQL能够减少手动比对和同步操作。
软件核心功能
一、项目管理器
1、多标签页项目
可在独立标签页中并排运行两个及以上项目:既可以是两台完全不同服务器上的两个架构对比项目,也可以是同一台服务器下分别执行架构对比与数据对比的项目。
所有对比进程均在独立线程中运行,因此你可以在等待其他对比任务执行完毕的同时,查看内容甚至直接执行更新脚本。
2、项目分组
你可以将各个项目归入不同项目组,让项目管理更加条理清晰。例如把所有数据对比项目归集到数据分组,或将同一服务器下的所有项目统一归入一个服务器分组。
二、架构比较
1、直接比较
比较两个数据库既快速又简单。在一个新项目中,选择您的源数据库,然后选择目标数据库,点击运行架构比较。
SQL Delta显示了源端或目标端中所有不同或不存在的对象概览。通过选择每个对象,您可以在架构级别查看各种差异。
2、综合项目选项
每个模式比较项目都有一系列选项,用于减少发现的常见差异。例如,源和目标之间的对象约束与系统名称通常不同,这些差异可以被忽略。
3、模式映射
对于某些项目,您的目标模式名称(所有者)与源模式名称不同。每个比较项目都提供将源模式名称映射到目标模式名称的选项。
SQL Delta随后可以根据需要自动更改定义,以使用正确的模式名称。例如,您的源数据库使用 "dbo" 作为所有对象的模式名称,而目标数据库使用 "prod"。只需将 dbo 映射到 prod,任何脚本更改都将确保目标对象是 prod.object 而不是 dbo.object。
4、全面搜索与筛选
在比较结果中,可以根据一系列选项对对象进行过滤。例如,“隐藏所有相同对象”是一个常用的过滤器。
过滤器可以被持久化保存,因此每当你重新运行项目时,过滤器都会重新应用。这种持久化功能还可以用于预选或预取消选择对象,如果你源数据库中的某些对象不应发送到目标数据库,这会非常方便。
5、过滤器模式读档
你可以将过滤器应用于模式读档,以排除某些对象。例如,你可能有一组源数据库中的函数,它们永远不会出现在目标数据库中。通过添加读档过滤器,你可以将这些函数排除在读档之外,从而在比较中也将其排除。
6、两键同步
一旦显示架构比较选项卡,只需点击“脚本”生成部署脚本,然后点击“执行”将其应用到目标。
7、比较报告
SQL Delta 可以生成模式比较的 HTML 报告,突出显示整个模式中的对象差异。
8、部署前修改脚本
有时能够修改脚本或向最终部署脚本添加脚本是非常方便的。同步脚本是完全可编辑的,此外,您还可以在项目选项中添加自定义脚本,这些脚本会被添加到每次部署的同步脚本中。
三、数据比较
1、它是如何工作的
数据比较使用一个或多个索引列(通常是主键)来确定源表中的行是否与目标表中的行匹配。如果找到匹配项,数据比较将扫描每个列以查找差异。
2、全面配置
默认情况下,数据比较非常简单,只需选择源数据库和目标数据库并运行比较即可。SQL Delta 会自动确定具有主键和匹配列名的表,并执行比较。
如果您希望获得更细致的控制,可以选择要比较的表,定义自己的索引列,甚至定义要比较的列。
3、表和列映射
有时源数据库中的表与目标数据库中的表名称不同。数据比较可以将源表名映射到目标表名。列也是如此,源列可以映射到目标列。数据比较会在部署脚本中处理这些名称更改。
4、数据过滤
在读档期间,可以对表数据进行过滤以排除特定行,且过滤器使用标准的where子句格式。
5、列转换
可以配置列以应用转换,用于比较或同时用于比较和脚本。
例如,您可能想要比较一个存储两位小数的数值列(货币值),但在这种情况下,只有整数对您有意义。
您可以对该列应用round(..)转换,这将移除小数部分并比较整数。
6、数据对比视图
视图可以作为数据比较的一部分可选包含。源视图可用于映射到目标表,从而提供一种从视图填充目标表的方法。
7、导出数据比较脚本
数据比较脚本可能非常庞大,在脚本执行过程中会自动保存到文件中。
数据比较脚本显示功能可展示数百万行代码,因此您甚至可以查看最大的部署脚本。
8、差异报告
生成一份HTML报告,显示您数据对比的差异摘要。
四、架构浏览
1、查看您的数据库
架构视图是一个编辑器功能,可显示数据库的整个架构。对于表和视图等对象,您还可以查看表或视图中的数据。
2、搜索
想在数据库中查找内容?架构视图可以筛选到对象的定义级别,以便您快速定位数据库中的元素。
3、动态查询
对您的数据库运行 DML 或 DDL 查询。
4、审查
例如,或许模式比较显示源表发生了意外更改,而您希望查看与源数据库和目标数据库相关的数据及其他信息。
从项目管理器中复制您的比较项目,将其切换为架构视图项目并运行。现在您可以看到原始架构以及表和视图中的数据。或许数据能解释变更,或者表中的注释能提供更多信息。
五、自动化任务
1、完成时事件
每个项目都可以有一系列在项目运行后触发的事件。
2、可用事件
1)显示同步脚本
2)存档同步脚本
3)执行同步脚本
4)生成对比报告
5)电子邮件
6)对比后运行项目
7)脚本后运行项目
8)将源/目标存档为快照
9)执行脚本
结合命令行功能,允许 SQL Delta 以完全自动化的模式运行。
六、差异报表
1、架构比较报告
在架构比较中,有4份比较报告和2份架构报告可用。每份报告都以HTML文件形式创建。前四份报告为架构比较提供了不同详细程度的信息。源/目标架构报告会生成一个HTML文件,显示整个数据库的架构详细信息。
2、数据比较报告
生成一个摘要HTML文件,以显示数据比较项目的差异。
3、架构视图报告
生成一个树视图HTML文件,以显示数据库架构,或生成所选对象的HTML视图。
软件特色
1、支持MySQL数据库架构结构对比与表内实际数据内容对比,覆盖绝大多数数据库变更场景。
2、可离线比对历史版本,减少直接连接生产数据库的安全风险。
3、自带自动化任务配置与命令行调用能力,可嵌入CI/CD流水线实现数据库版本自动校验同步。
4、界面轻量化,占用资源低,上手门槛低,不用复杂配置即可快速完成两库比对。
更新日志
v7.3.4.10版本
1、在项目管理器过滤功能中新增 /sc 和 /dc 开关,用于查找架构比较(Schema Compare)或数据比较(Data Compare)项目。
2、在项目管理器中新增 /r 快速正则表达式搜索开关。
3、使用 /r 进行多词正则表达式搜索时,现在可以匹配被其他文本分隔开的关键词。
4、修复数据同步脚本中错误的本地化问题。
5、进一步改进架构比较脚本的排序逻辑。
6、改进 Windows 非主题模式下自动切换主题时的颜色显示效果。
7、即使项目组之前已折叠,搜索结果仍会保持显示。
8、改进对空的或不可用的 OneDrive 项目/XML 文件的处理方式。
9、修复解析脚本文件时可能导致程序崩溃的严重问题。
10、改进循环依赖处理,包括以下复杂情况:
1)表包含计算列(Computed Columns);
2)计算列引用函数;
3)而这些函数又反过来引用该表。
11、修复某些被引用对象可能在依赖它们的对象之后才生成脚本的问题。
12、改进大型数据比较脚本在“完成时(On Completion)”保存时的处理性能。
13、防止在已有 Schema View 查询正在运行时启动第二个查询。
14、修复结果网格(Result Grid)在以下情况下出现错误的问题:
1)查询没有返回结果集;
2)查询仅包含 DDL 语句;
3)查询执行失败。
15、SQL 编辑器的行号区域(Gutter)现在会根据更大的行号自动扩展。
16、改进 UTF-8、UTF-16 以及无 BOM 的文本文件加载支持。
17、改进系统首选项(System Preferences)中的键盘导航体验。
18、为“显示(Display)”“颜色(Colors)”以及其他首选项区域增加独立的键盘快捷键。
19、当Windows Server上配置的主题无法应用时,新增使用原生 Windows 样式作为备用方案。
20、修复其他常规错误。



