SQL Delta for MySQL 针对数据库结构及数据差异提供比对能力,并据此生成同步脚本。其检查范围覆盖表结构、存储过程、函数、视图等对象,既能对比数据库模式,也能对比表数据,进而把一个库的结构或数据同步至另一个库。界面采用选项卡式设计,允许同时处理多个比较任务,适用于数据库开发、维护与测试环节。面对需要维护多套数据库环境的用户,该工具可减轻手动比对与同步的工作量。

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、优化系统偏好设置中的键盘导航操作体验。
18、针对“显示(Display)”“颜色(Colors)”等首选项分区,分别配置了专属的键盘快捷方式。
19、针对Windows Server环境里主题配置失效的情况,补充了以系统原生Windows样式进行兜底的方案。
20、修正若干常规问题。
一、项目管理器
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、架构比较报告
在架构比较功能中,系统会提供四份比较报告与两份架构报告,均以HTML文件的形式呈现。这四份比较报告从不同详细程度呈现架构对比结果;源架构与目标架构报告则各自生成一个HTML文件,用于展示整个数据库架构的详细信息。

2、数据比较报告
将数据比较项目之间的差异汇总,输出为一个摘要用的 HTML 文件。
3、架构视图报告
创建一个树形视图 HTML 文件,用来呈现数据库架构;也可以针对所选对象生成对应的 HTML 视图。
(您的评论需要经过审核才能显示)
0条评论