专注数据库同步,支持按需选表和一对多同步。
将一个库的表结构同步到多个库,选择保存脚本人工执行或直接执行,并通过同步记录、回滚脚本和版本归档管理每次变更。支持 MySQL 与 PostgreSQL 同类型数据库之间的同步。
我经常需要把一个数据库中部分表的结构同步到多个数据库。用过的一些工具需要针对不同目标库反复操作,同步后还要另外整理记录、保留回滚脚本,并按发布版本归档。我也找过一些市面上的同步工具,最后没有找到适合自己这套使用流程的,所以决定自己做一个。
DBAligner 专注把这件事做好:选定需要的表,从一个来源同步到多个目标,再把同步记录、回滚资料和版本整理放到同一个流程里。
- 按需选表:只选择本次需要同步的表,按需选择结构细项,并在差异预览中勾选具体变更,控制实际同步范围。
- 一对多同步:一个源库对应多个目标库,分别查看各目标的差异与执行结果,减少逐库重复操作。
- 保存脚本或直接执行:选择“仅保存记录”,保留同步记录并导出脚本供人工执行;也可以“执行并保存”,由客户端执行并记录实际结果。仅保存记录不会执行同步。
- 同步历史与脚本:保留每次同步的范围、执行脚本、回滚脚本和实际执行结果,方便后续查看、核对与追溯。
- 回滚此前同步:从历史记录查看回滚方案,在执行证据、恢复资料和当前状态检查满足条件时,选择可恢复的变更执行回滚。
- 版本管理:将多条同步记录归入新版本,或追加到已有版本,集中整理一次需求或发布涉及的数据库变更。版本归档用于组织记录,保留各记录原有的执行状态。
除了表结构同步,还支持基础数据同步,可按主键、业务键及复合键匹配,适合基础字典等中小规模数据。结构与数据分别比较和同步,每次只使用一种类型。
重复使用的来源、目标和选表配置可以保存为同步模板;连接按工作区组织,支持导入 Navicat、DBeaver、DataGrip 会话,并提供浅色、深色和跟随系统主题。
不同工具的功能和适用场景各有侧重。选择同步工具时,可以从下面几个方面比较;DBAligner 重点围绕按需选表、一对多同步、记录与回滚、版本归档来组织工作流程。
| 比较维度 | 选型时关注的问题 | DBAligner 的做法 |
|---|---|---|
| 同步范围 | 能否只处理本次需要的表和变更? | 按需选表、选择结构细项,再勾选实际要同步的差异 |
| 多目标操作 | 同一份来源需要同步到多个库时,如何组织操作? | 一次选择一个来源与多个目标,分别查看差异和执行结果 |
| 执行方式 | 需要人工审核、交给其他人执行时,能否保留流程? | 支持仅保存记录并导出脚本,也支持客户端直接执行并保存 |
| 变更追溯 | 之后能否查清本次范围、脚本和实际执行情况? | 同步历史集中保留范围、执行/回滚脚本和实际结果;人工执行可登记完成范围并追加核验 |
| 回滚处理 | 需要撤销时,能否找到脚本并判断哪些变更可恢复? | 记录中保留回滚脚本,客户端回滚结合执行证据、恢复资料及当前状态检查 |
| 版本整理 | 一次需求或发布涉及多条同步记录时,如何归档? | 将多条记录标记到同一版本,支持追加记录并导出版本脚本 |
DBAligner 专注结构与基础数据同步,适合反复将部分表的变更分发到多个库、并需要保留记录的场景。全量迁移、CDC 和大表持续复制不在当前定位内。
开发库中几张表的结构发生了变化,需要同步到多个同类型目标库:
- 选择开发库作为来源,一次选择多个目标库。
- 只勾选本次涉及的表,按需选择字段、注释、索引等结构细项,开始比较。
- 分别查看各目标的差异、风险和 SQL,确认本次要同步的变更。
- 保存记录并导出脚本,交给人工执行;或确认后由客户端直接执行并保存结果。
- 在同步历史中查看各目标的记录,将相关记录标记到同一个版本。
- 后续需要撤销时,从记录查看回滚脚本或进入回滚预览,核对实际执行范围与恢复条件后处理。
回滚需要可信的执行证据和恢复资料,也会检查当前状态与冲突;不能保证所有操作都能自动恢复。人工执行脚本后,可在记录中登记实际完成范围并追加核验,保存脚本本身不代表已经执行。
按需选表,一对多同步:选择一个来源与多个目标,只勾选本次需要同步的表,支持按已选表筛选和调整结构细项。
比较差异,保存脚本或直接执行:按目标、表和变更项核对差异、风险及 SQL,再选择“仅保存记录”或“执行并保存”。
同步记录与回滚脚本:在历史记录中查看执行情况及各目标的脚本,需要恢复时进入回滚预览核对条件。
按版本归档变更:将多条同步记录组织到同一个版本,查看关联记录、追加记录并导出版本脚本。
以上截图使用虚构演示数据;实际能力和限制以支持范围为准。
当前提供 Windows x64 NSIS 安装包和完整便携 ZIP,可从 GitHub Releases 下载。随包提供 Java 引擎和运行时,无需预装 Java/Maven;电脑缺少 WebView2 时,首次安装需要联网获取。
- 安装并创建工作区:新建连接,或导入 Navicat、DBeaver、DataGrip 会话,补充缺失密码。
- 选择同步范围:选择数据库类型、一个来源、多个同类型目标,以及需要的表。
- 比较结构或数据:按需设置结构细项或数据匹配键,确认范围后开始比较。
- 查看并选择差异:检查目标、风险及 SQL;删除和高风险结构变更默认不选。
- 确认保存或执行:选择“仅保存记录”或“执行并保存”,确认实际范围和完整已选 SQL,随后到同步历史查看结果。
便携 ZIP 必须完整解压并保留全部资源。安装版可在“设置 → 关于”检查后续正式更新,下载和重启安装均需确认;便携版关闭客户端后替换完整程序目录。Tauri 更新签名与 Windows 代码签名分别管理,未配置后者时 Windows 可能显示未知发布者提示。
| 项目 | 当前范围 |
|---|---|
| 平台 | Windows x64 |
| 数据库 | MySQL 5.7/8.0/8.4、PostgreSQL 17.x;同类型之间同步 |
| 同步类型 | 每次选择结构或数据,跨表也不能混合 |
| 基础数据 | 来源及每个目标每表最多 20,000 行,超限阻止,不截断同步 |
| 目标缺表 | 数据模式跳过;需要时先同步结构,再重新比较数据 |
| 复杂对象与风险 | 按支持范围阻止;不关闭外键检查绕过约束 |
| 回滚 | 依赖可信完成证据、执行后状态及本地恢复资料,不能保证所有操作可自动恢复 |
工具面向结构与基础字典等中小规模数据同步。完整对象支持、权限、恢复限制和未验收项见支持范围。浏览器预览只使用内存虚构数据,真实连接和同步使用桌面客户端。
桌面端使用 Tauri 2 / Rust / React / TypeScript / Ant Design,引擎使用 Java 21 / Spring Boot 非 Web 模式 / JDBC,本地配置和记录使用 SQLite。生产客户端与引擎不启动本地 HTTP 服务。
准备 Windows x64、Node.js 24/npm 11、Rust MSVC 和 Windows C++ 构建工具后,在仓库根目录运行:
npm ci
npm run bootstrap
npm run desktop仅查看界面可运行 npm run dev 并打开 http://127.0.0.1:4173/?preview=1。完整环境、构建及资料目录见开发指南,检查组合见测试指南,贡献方式见CONTRIBUTING。
问题反馈请使用 Issues,安全问题请使用私密报告渠道。反馈前移除连接、密码、SQL、SQLite 及其他业务资料。
项目采用 Apache-2.0。第三方组件保留各自许可,见第三方说明。完整分发保留客户端、引擎、运行时与许可材料;MySQL/PostgreSQL 服务端不随客户端分发。



