Skip to content

About

DBAligner 是一款数据库结构与基础数据同步工具,支持 MySQL、PostgreSQL 同类型数据库之间按需选表、一对多同步,提供差异预览、脚本导出、直接执行、同步追溯、回滚与版本归档,目前提供 Windows 版本。

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

DBAligner

专注数据库同步,支持按需选表和一对多同步。

将一个库的表结构同步到多个库,选择保存脚本人工执行或直接执行,并通过同步记录、回滚脚本和版本归档管理每次变更。支持 MySQL 与 PostgreSQL 同类型数据库之间的同步。

下载安装 · 使用指南 · 支持范围 · 文档导航

为什么做 DBAligner

我经常需要把一个数据库中部分表的结构同步到多个数据库。用过的一些工具需要针对不同目标库反复操作,同步后还要另外整理记录、保留回滚脚本,并按发布版本归档。我也找过一些市面上的同步工具,最后没有找到适合自己这套使用流程的,所以决定自己做一个。

DBAligner 专注把这件事做好:选定需要的表,从一个来源同步到多个目标,再把同步记录、回滚资料和版本整理放到同一个流程里。

核心功能

  • 按需选表:只选择本次需要同步的表,按需选择结构细项,并在差异预览中勾选具体变更,控制实际同步范围。
  • 一对多同步:一个源库对应多个目标库,分别查看各目标的差异与执行结果,减少逐库重复操作。
  • 保存脚本或直接执行:选择“仅保存记录”,保留同步记录并导出脚本供人工执行;也可以“执行并保存”,由客户端执行并记录实际结果。仅保存记录不会执行同步。
  • 同步历史与脚本:保留每次同步的范围、执行脚本、回滚脚本和实际执行结果,方便后续查看、核对与追溯。
  • 回滚此前同步:从历史记录查看回滚方案,在执行证据、恢复资料和当前状态检查满足条件时,选择可恢复的变更执行回滚。
  • 版本管理:将多条同步记录归入新版本,或追加到已有版本,集中整理一次需求或发布涉及的数据库变更。版本归档用于组织记录,保留各记录原有的执行状态。

除了表结构同步,还支持基础数据同步,可按主键、业务键及复合键匹配,适合基础字典等中小规模数据。结构与数据分别比较和同步,每次只使用一种类型。

重复使用的来源、目标和选表配置可以保存为同步模板;连接按工作区组织,支持导入 Navicat、DBeaver、DataGrip 会话,并提供浅色、深色和跟随系统主题。

和其他同步工具相比,DBAligner 侧重什么

不同工具的功能和适用场景各有侧重。选择同步工具时,可以从下面几个方面比较;DBAligner 重点围绕按需选表、一对多同步、记录与回滚、版本归档来组织工作流程。

比较维度 选型时关注的问题 DBAligner 的做法
同步范围 能否只处理本次需要的表和变更? 按需选表、选择结构细项,再勾选实际要同步的差异
多目标操作 同一份来源需要同步到多个库时,如何组织操作? 一次选择一个来源与多个目标,分别查看差异和执行结果
执行方式 需要人工审核、交给其他人执行时,能否保留流程? 支持仅保存记录并导出脚本,也支持客户端直接执行并保存
变更追溯 之后能否查清本次范围、脚本和实际执行情况? 同步历史集中保留范围、执行/回滚脚本和实际结果;人工执行可登记完成范围并追加核验
回滚处理 需要撤销时,能否找到脚本并判断哪些变更可恢复? 记录中保留回滚脚本,客户端回滚结合执行证据、恢复资料及当前状态检查
版本整理 一次需求或发布涉及多条同步记录时,如何归档? 将多条记录标记到同一版本,支持追加记录并导出版本脚本

DBAligner 专注结构与基础数据同步,适合反复将部分表的变更分发到多个库、并需要保留记录的场景。全量迁移、CDC 和大表持续复制不在当前定位内。

一个典型场景

开发库中几张表的结构发生了变化,需要同步到多个同类型目标库:

  1. 选择开发库作为来源,一次选择多个目标库。
  2. 只勾选本次涉及的表,按需选择字段、注释、索引等结构细项,开始比较。
  3. 分别查看各目标的差异、风险和 SQL,确认本次要同步的变更。
  4. 保存记录并导出脚本,交给人工执行;或确认后由客户端直接执行并保存结果。
  5. 在同步历史中查看各目标的记录,将相关记录标记到同一个版本。
  6. 后续需要撤销时,从记录查看回滚脚本或进入回滚预览,核对实际执行范围与恢复条件后处理。

回滚需要可信的执行证据和恢复资料,也会检查当前状态与冲突;不能保证所有操作都能自动恢复。人工执行脚本后,可在记录中登记实际完成范围并追加核验,保存脚本本身不代表已经执行。

界面预览

按需选表,一对多同步:选择一个来源与多个目标,只勾选本次需要同步的表,支持按已选表筛选和调整结构细项。

按需选表与一对多同步

比较差异,保存脚本或直接执行:按目标、表和变更项核对差异、风险及 SQL,再选择“仅保存记录”或“执行并保存”。

差异预览与保存或执行入口

同步记录与回滚脚本:在历史记录中查看执行情况及各目标的脚本,需要恢复时进入回滚预览核对条件。

同步历史中的回滚脚本

按版本归档变更:将多条同步记录组织到同一个版本,查看关联记录、追加记录并导出版本脚本。

版本归档与关联同步记录

以上截图使用虚构演示数据;实际能力和限制以支持范围为准。

下载与快速上手

当前提供 Windows x64 NSIS 安装包和完整便携 ZIP,可从 GitHub Releases 下载。随包提供 Java 引擎和运行时,无需预装 Java/Maven;电脑缺少 WebView2 时,首次安装需要联网获取。

  1. 安装并创建工作区:新建连接,或导入 Navicat、DBeaver、DataGrip 会话,补充缺失密码。
  2. 选择同步范围:选择数据库类型、一个来源、多个同类型目标,以及需要的表。
  3. 比较结构或数据:按需设置结构细项或数据匹配键,确认范围后开始比较。
  4. 查看并选择差异:检查目标、风险及 SQL;删除和高风险结构变更默认不选。
  5. 确认保存或执行:选择“仅保存记录”或“执行并保存”,确认实际范围和完整已选 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 服务端不随客户端分发。

更新记录 · 发布流程 · 架构与协议 · 验证记录

About

DBAligner 是一款数据库结构与基础数据同步工具,支持 MySQL、PostgreSQL 同类型数据库之间按需选表、一对多同步,提供差异预览、脚本导出、直接执行、同步追溯、回滚与版本归档,目前提供 Windows 版本。

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages