# DBBridge **Repository Path**: minglley/dbbridge ## Basic Information - **Project Name**: DBBridge - **Description**: Description: 开源、免费、零依赖的数据库迁移与SQL转换工具。支持 Mssql/MySQL/PostgreSQL/SQLite/OceanBase/TiDB/达梦/金仓 等 11 种数据库互转。单文件 < 30MB,双击即用。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-09-17 - **Last Updated**: 2026-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Go Vue Wails License Platform

GitHub Stars Gitee Stars GitHub Release

DBBridge

数据库迁移工具

> **填好连接信息,点击"开始迁移",5 分钟搞定异构数据库迁移。** > > 无需安装 JDK,无需写配置文件,无需命令行操作——**双击运行,所见即所得**。 --- ## 📖 这是什么? DBBridge 是一款**开源、免费、零依赖**的数据库迁移与 SQL 转换工具。 你有没有遇到过这些场景? | 痛点场景 | 传统方式 | 用 DBBridge | |----------|----------|-------------| | 客户给的 MySQL 数据库,你本地用 PostgreSQL | 手工改 SQL,半天搞定 | 填两个连接信息,一键迁移 | | 拿到一个 `.sql` 备份文件,导入报语法错误 | 逐行排查改语法 | 解析 SQL 文件,自动方言转换 | | 测试环境要搭和生产库一样的表结构 | 手工建表,容易漏 | 直连源库,一键迁移结构 | | 信创项目:MySQL → 达梦/金仓/openGauss | 找厂商工具或手工改 | 原生支持国产库迁移 | **一句话总结:DBBridge 让数据从一个数据库迁移到另一个数据库变得简单。** --- ## ✨ 核心特性 ### 🎯 极致易用 — 5 分钟上手 - **图形化界面**:不是命令行工具,是漂亮桌面 App - **三步迁移**:填连接 → 选表 → 点迁移 - **零配置**:不需要写 YAML/JSON 配置文件 - **实时进度**:迁移进度条 + 详细日志 ### 🔌 零依赖 — 单文件即用 - **不依赖 JDK**(不像 DBeaver/Flyway/Liquibase) - **不依赖 Python**(不像 pgloader) - **不依赖运行时**(不像 DBSwitch 需要部署服务端 + JVM) - **单文件 < 30MB**,下载双击即可运行 ### 🗄️ 多数据库支持 #### 第一阶段:开源主流 | 数据库 | 作为源库 | 作为目标库 | |--------|:--------:|:--------:| | **MySQL** (5.7/8.0+) | ✅ | ✅ | | **PostgreSQL** (14/16/17+) | ✅ | ✅ | | **SQLite** (3.x) | ✅ | ✅ | | **MariaDB** | ✅ | ✅ | | **OceanBase** (MySQL模式) | ✅ | ✅ | #### 第二阶段:云原生与国产化 | 数据库 | 作为源库 | 作为目标库 | |--------|:--------:|:--------:| | **TiDB** | ✅ | ✅ | | **PolarDB** (MySQL兼容) | ✅ | ✅ | | **openGauss** | ✅ | ✅ | | **达梦 DM8** | ✅ | ✅ | | **人大金仓 KingbaseES** | ✅ | ✅ | | **Amazon Aurora** (MySQL兼容) | ✅ | ✅ | | **CockroachDB** | ✅ | ✅ | | **TimescaleDB** | ✅ | ✅ | #### 第三阶段:主流商业与 NoSQL | 数据库 | 作为源库 | 作为目标库 | |--------|:--------:|:--------:| | **Oracle** | ✅ | ✅ | | **SQL Server (MSSQL)** | ✅ | ✅ | | **IBM Db2** | ✅ | ✅ | | **MongoDB** | ✅ | ✅ | | **Redis** | ✅ | ✅ | | **Cassandra** | ✅ | ✅ | | **ScyllaDB** | ✅ | ✅ | | **InfluxDB** | ✅ | ✅ | | **TDengine** | ✅ | ✅ | #### 第四阶段:桌面/文件型数据库 | 数据库 | 作为源库 | 作为目标库 | |--------|:--------:|:--------:| | **Microsoft Access** (.mdb/.accdb) | ✅ (仅 Windows) | ✅ (仅 Windows) | > 以上 23 种数据库可以**任意两两互转**(N × N 组合)。 > NoSQL/时序数据库(MongoDB/Redis/Cassandra/ScyllaDB/InfluxDB/TDengine)通过语义映射实现与关系型数据库的互转。 > Microsoft Access 仅在 Windows 上可用(需安装 Microsoft Access Database Engine ODBC 驱动),Linux/macOS 用户请先将 .mdb/.accdb 导出为 SQLite 或 MySQL 再迁移。 ### 🛡️ 安全可靠 - **迁移前自动备份**:目标库的同名表自动重命名为 `_bak_` 前缀 - **一键回滚**:迁移不满意?一键从备份恢复 - **事务保障**:每批数据写入用事务包裹,失败可回滚 - **参数化查询**:防止 SQL 注入 - **日志脱敏**:密码不出现在任何日志中 ### ⚡ 触发器与存储过程迁移 - **触发器自动转换**:MSSQL `inserted/deleted` → MySQL `NEW/OLD`,语法自动适配目标方言 - **存储过程自动转换**:T-SQL → MySQL/PLpgSQL 语法转换,`@变量` → 局部变量声明等 - **CHECK 约束迁移**:表结构中的 CHECK 约束一并迁移到目标库 - **多方言支持**:MSSQL、MySQL、PostgreSQL 之间的触发器和存储过程互转 > ⚠️ 触发器和存储过程的转换是语法层面的自动转换,复杂业务逻辑可能需要人工微调。 > 转换失败的项会在迁移报告中列出,方便定位和手动修复。 ### 📊 迁移报告 - 成功/失败表数统计 - 每表行数对比 - 耗时统计 - 失败原因明细 - 迁移历史记录(本地 SQLite 持久化) ### 🧰 迁移配套工具箱 数据搬过去了只是第一步,DBBridge 还内置了 6 个配套工具,帮你处理"程序跟着改": | 工具 | 解决什么问题 | 关键特性 | |------|--------------|----------| | **SQL 脚本转换** | 存量 `.sql` 脚本导入新库报语法错 | mysqldump 风格解析,DDL/INSERT 结构化转换;SELECT 等业务 SQL 自动做表达式级安全改写(`TOP n→LIMIT n`、`GETDATE()→NOW()`、`ISNULL→COALESCE`、标识符引号风格) | | **SQL 方言体检** | 业务代码里写死的 SQL 不兼容新库 | 按行列号输出不兼容清单(错误/警告/建议三级 + 改法建议);字符串与注释不误报;只报告不改写 | | **切换前数据校验** | 迁移完了,数据到底对不对? | 行数对比 + 按主键抽样逐字段比对(浮点容差/时间格式归一化),全程只读 | | **结构兼容性检查** | 迁移后目标库结构是否完整 | 列完整性/类型语义/可空性/默认值/自增/索引/外键/字符集 逐项对比,缺失索引和外键直接点名 | | **迁移适配指南** | 迁移前评估"业务代码要改多少" | 列类型映射差异清单、触发器/存储过程转换预演(哪些能自动转、哪些必须手写)、目标方言语义提示,只读元数据 | | **连接串生成器** | 切库后各语言连接串不会写 | 一键生成 Java JDBC / Python SQLAlchemy / Go DSN / PHP PDO / Node.js 模板;达梦等小众组合如实说明驱动获取方式,不编造 | > 所有检查/校验/预演类功能均**只读不动数据**;改写类功能只做语义等价的安全替换, > 改不了的一律留给体检报告由人工确认,绝不猜着改。
📖 Headless REST API(Linux 服务器模式) Linux 服务器上以 `--web` 模式运行时,除 Web 界面外还提供 REST API,可集成到 CI/CD: ``` GET /api/health 健康检查 GET /api/version 版本信息 GET /api/databases 支持的数据库列表 POST /api/test-connection 测试连接 {ConnectionConfig} POST /api/tables 表列表 {ConnectionConfig} POST /api/schema 表结构 {config, table} POST /api/migrate 迁移(阻塞) {MigrationConfig} POST /api/cancel 取消迁移 GET /api/status 迁移状态 GET /api/backups 备份表列表 {config} POST /api/backups/restore 恢复备份 {config, backupName|backupNames} POST /api/backups/delete 删除备份 {config, backupName} POST /api/convert-sql SQL 脚本转换 {sourceDialect, targetDialect, sql} POST /api/lint-sql SQL 方言体检 {sourceDialect, targetDialect, sql} POST /api/validate 切换前数据校验 {source, target, tables?, sampleSize?} POST /api/guide 迁移适配指南 {config, targetDialect, tables?} POST /api/compat 结构兼容性检查 {source, target, tables?} POST /api/connstr 连接串生成 {ConnectionConfig} ```
--- ## 🚀 快速开始 ### 方式一:Windows 用户(最简单) 1. 从 [Releases](https://github.com/suoten/dbbridge/releases) 下载 `dbbridge-2.0.0-windows-amd64.zip` 2. 解压后双击 `dbbridge.exe` 3. 填写源库和目标库的连接信息 4. 点击"开始迁移"——完成! > 🎉 不需要安装 JDK、Python 等运行时依赖。 > > ⚠️ **Windows 用户注意**:DBBridge 是基于 WebView2 的桌面应用。Windows 10/11 通常已内置 WebView2 运行时, > 如果双击后闪退或报错,请安装 [WebView2 运行时](https://developer.microsoft.com/microsoft-edge/webview2/) 后重试。 ### 方式二:macOS 用户 1. 从 [Releases](https://github.com/suoten/dbbridge/releases) 下载 macOS 版本 2. 解压后拖入"应用程序"文件夹 3. 打开运行 4. 同上,填连接信息 → 迁移 ### 方式三:Linux 服务器部署(下载发布包安装) **最简单的方式**——下载发布包,解压,运行 install.sh: ```bash # 1. 下载发布包(x86_64 服务器) wget https://github.com/suoten/dbbridge/releases/latest/download/dbbridge-2.0.0-linux-amd64.zip # ARM64 服务器(鲲鹏/飞腾/Kylin): # wget https://github.com/suoten/dbbridge/releases/latest/download/dbbridge-2.0.0-linux-arm64.zip # 2. 解压 unzip dbbridge-2.0.0-linux-amd64.zip # 3. 运行安装脚本 sudo bash install.sh ``` 安装完成后: - 🌐 Web 界面:`http://服务器IP:8989` - 📂 安装目录:`/opt/dbbridge` - 📋 日志文件:`/var/log/dbbridge/dbbridge.log` - 🔄 服务管理:`systemctl start/stop/restart dbbridge` - 🗑️ 卸载:`sudo bash /opt/dbbridge/uninstall.sh` 或 `sudo bash uninstall.sh`
📖 安装脚本支持的参数(点击展开) ```bash # 指定端口 DBBRIDGE_PORT=9000 sudo bash install.sh # 卸载 sudo bash uninstall.sh ```
📖 一行命令安装(curl 管道模式) 如果服务器已有二进制文件,可以一行命令安装: ```bash curl -fsSL /install.sh | sudo bash ``` 或通过环境变量指定端口: ```bash curl -fsSL /install.sh | DBBRIDGE_PORT=9000 sudo bash ```
### 方式四:宝塔面板部署 + 反向代理 如果你使用**宝塔面板**管理服务器,DBBridge 提供了一键反向代理配置脚本: ```bash # 1. 先安装 DBBridge(见方式三) # 2. 运行宝塔反向代理配置脚本 sudo bash /opt/dbbridge/baota-proxy.sh ``` 脚本会引导你完成: 1. 输入绑定域名(如 `db.yourdomain.com`) 2. 确认 DBBridge 端口(默认 8989) 3. 自动写入 Nginx 反向代理配置 4. 自动重载 Nginx
📖 手动配置宝塔反向代理(不想用脚本) 1. **宝塔面板 → 网站 → 添加站点** - 域名:`db.yourdomain.com` - 类型:纯静态 2. **站点设置 → 配置文件**,在 `server { }` 块中添加: ```nginx location / { proxy_pass http://127.0.0.1:8989; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket 支持(迁移进度实时推送) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 超时设置(大表迁移耗时较长) proxy_connect_timeout 60s; proxy_send_timeout 300s; proxy_read_timeout 300s; proxy_buffering off; proxy_cache off; } ``` 3. **保存 → 重启 Nginx** 4. **(可选)申请 SSL 证书**:站点设置 → SSL → Let's Encrypt → 申请
> 完整的 Nginx 配置模板见 [`deploy/baota-nginx.conf`](deploy/baota-nginx.conf)。 --- ## 🖥️ 打包发布(make-release.ps1) 如果你是开发者,需要自行打包发布多平台版本,使用 `make-release.ps1` 一键搞定: ```powershell # 默认版本号 2.0.0 powershell -ExecutionPolicy Bypass -File make-release.ps1 # 指定版本号 powershell -ExecutionPolicy Bypass -File make-release.ps1 -Version 2.0.0 ``` 脚本会自动完成: 1. **构建前端**(Vue3 → `frontend/dist/`) 2. **编译多平台二进制** - Linux amd64/arm64:`CGO_ENABLED=0` 纯 Go 交叉编译(headless Web 模式,无需 GCC) - Windows amd64:`wails build`(完整桌面应用,含 WebView2 前端资源) 3. **打包发布 zip** - Linux 包:二进制 + install.sh + uninstall.sh + baota-proxy.sh + baota-nginx.conf + README.md - Windows 包:DBBridge.exe + README.md + appicon.png 4. **生成 SHA256 校验文件** 产物在 `release/` 目录下: ``` release/ ├── dbbridge-2.0.0-linux-amd64.zip ├── dbbridge-2.0.0-linux-arm64.zip ├── dbbridge-2.0.0-windows-amd64.zip └── checksums.txt ``` > **为什么 Linux 不需要 CGO?** DBBridge 使用 `modernc.org/sqlite`(纯 Go 实现的 SQLite), > 不依赖任何 C 库,因此 Linux 版可以 `CGO_ENABLED=0` 交叉编译,无需安装 GCC。 > > **Windows 版为什么用 wails build?** Wails 桌面应用依赖 WebView2 运行时, > `wails build` 会生成包含前端资源的完整桌面应用。用户机器需要安装 WebView2 运行时 > (Windows 10/11 通常已内置,若未安装可从[微软官网](https://developer.microsoft.com/microsoft-edge/webview2/)下载)。 --- ## 🔧 从源码构建(开发模式) 如果你想从源码编译(开发者或安全审查): ### 前置要求 | 工具 | 版本 | 说明 | |------|------|------| | **Go** | 1.21+ | 后端语言 | | **Node.js** | 18+ | 前端构建 | | **Wails CLI** | v2.10+ | 桌面框架(开发模式用) | > **无需 GCC/CMake** — DBBridge 使用纯 Go SQLite,不需要 CGO 编译。 ### 开发模式 ```bash # 1. 克隆仓库 git clone https://github.com/suoten/dbbridge.git cd dbbridge # 2. 安装 Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # 3. 开发模式(热重载) wails dev # 4. 构建桌面 GUI wails build ``` ### 纯 Go 编译(Linux 服务器部署用) ```bash # 前端 cd frontend && npm install && npm run build && cd .. # Linux amd64 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o dbbridge . # Linux arm64 (信创/ARM 服务器) CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o dbbridge . ``` > ⚠️ Windows 桌面版请使用 `wails build -platform windows`,不要直接 `go build`。 > `go build` 编译的 exe 缺少 Wails 桌面运行时初始化,可能导致无法启动。
📖 使用 Wails 构建各平台桌面版 ```bash # Windows wails build -platform windows # macOS (Universal Binary) wails build -platform darwin/universal # Linux (amd64) CGO_ENABLED=0 GOOS=linux GOARCH=amd64 wails build -platform linux/amd64 # Linux (arm64 - 信创/ARM 服务器) CGO_ENABLED=0 GOOS=linux GOARCH=arm64 wails build -platform linux/arm64 ```
--- ## 📱 使用指南(图文版) ### 第一步:配置源数据库 打开 DBBridge,在左侧"配置连接"页面: 1. **选择数据库类型**:MySQL / PostgreSQL / SQLite / ... 2. **填写连接信息**: - 主机地址(如 `127.0.0.1`) - 端口(如 MySQL 默认 `3306`) - 用户名 / 密码 - 数据库名 3. **点击"测试连接"**:确保能连上 ### 第二步:选择要迁移的表 1. 连接成功后,自动加载表列表 2. **勾选**要迁移的表(默认全选) 3. 可用搜索框快速过滤 ### 第三步:配置目标数据库 1. 同样选择数据库类型 + 填写连接信息 2. **测试连接** ### 第四步:配置迁移选项 | 选项 | 说明 | 建议 | |------|------|------| | 批量大小 | 每批写入的行数 | 5000(默认) | | 并发表数 | 同时迁移几张表 | 4(默认) | | 仅迁移结构 | 不迁移数据 | 适合搭测试环境 | | 仅迁移数据 | 不迁移表结构 | 目标表已存在时 | | 目标表已存在时删除 | 先 DROP 再建 | ✅ 推荐 | | 迁移前备份 | 自动备份目标表 | ✅ 推荐 | | 自动回滚 | 失败时自动恢复 | ✅ 推荐 | ### 第五步:点击“开始迁移” - 实时进度条 - 详细日志 - 迁移完成后查看报告 - 如果不满意 → “备份管理”页面一键回滚 ### 第六步(推荐):切换前校验 迁移完成后,先别急着切换程序: 1. **数据校验**页面:点“加载源库表”→ 全选 → “开始校验”,确认行数和抽样比对全部一致 2. **结构兼容性检查**:确认列/索引/外键没有缺失 3. **迁移指南**页面:查看触发器/存储过程哪些需要人工改写、列类型映射差异 4. 业务代码里的 SQL 可粘贴到 **SQL 工具**页面做体检,按行号逐条改造 --- ## 📂 项目结构 ``` DBBridge/ ├── app.go # Wails 绑定层(前端调用入口) ├── main.go # 程序入口 ├── go.mod # Go 模块定义 ├── wails.json # Wails 配置 ├── make-release.ps1 # 一键打包发布脚本(多平台二进制 + zip) ├── install.sh # 源码编译安装脚本(自动安装 Go/Node/Wails 并编译) ├── deploy/ # 部署相关配置(打包到发布 zip 中) │ ├── install.sh # 发布包安装脚本(从同目录复制二进制) │ ├── uninstall.sh # 卸载脚本 │ ├── baota-nginx.conf # 宝塔 Nginx 反向代理模板 │ ├── baota-proxy.sh # 宝塔反向代理自动配置脚本 │ └── dbbridge.service # systemd 服务模板 ├── internal/ # 后端核心逻辑 │ ├── adapter/ # 数据库适配器(每种数据库一个目录) │ │ ├── mysql/ │ │ ├── postgres/ │ │ ├── sqlite/ │ │ ├── mariadb/ │ │ ├── oceanbase/ │ │ ├── tidb/ │ │ ├── opengauss/ │ │ ├── dameng/ │ │ ├── kingbase/ │ │ ├── cockroachdb/ │ │ ├── mysqlcompat/ # MySQL 兼容协议库公共逻辑 │ │ └── pgcompat/ # PG 兼容协议库公共逻辑 │ ├── converter/ # DDL/数据转换器 │ ├── orchestrator/ # 迁移编排器(调度核心) │ ├── migrator/ # 迁移执行器 │ ├── parser/ # SQL 文件解析器 │ ├── sqlexpr/ # SQL 表达式级安全改写(TOP/GETDATE/ISNULL 等) │ ├── sqllint/ # SQL 方言体检引擎 │ ├── webserver/ # Headless REST API 服务(Linux --web 模式) │ ├── history/ # 迁移历史记录 │ ├── service/ # 业务服务层(转换/体检/校验/指南/兼容检查/连接串) │ ├── typeconv/ # 类型映射 │ ├── logger/ # 日志 │ ├── progress/ # 进度追踪 │ └── config/ # 配置管理 ├── pkg/ # 公开包(适配器接口 + 类型定义) │ ├── adapter.go │ └── types.go ├── frontend/ # Vue3 前端 │ ├── src/ │ │ ├── App.vue # 主界面 │ │ └── components/ # 组件 │ │ ├── ConnectionForm.vue │ │ ├── ProgressPanel.vue │ │ ├── MigrationReport.vue │ │ ├── BackupManager.vue │ │ ├── MigrationHistory.vue │ │ ├── SqlTools.vue # SQL 转换 + 方言体检 │ │ ├── DataValidator.vue # 数据校验 + 结构兼容性检查 │ │ ├── MigrationGuide.vue # 迁移适配指南 │ │ └── ConnStrings.vue # 连接串生成 │ ├── package.json │ └── vite.config.ts └── build/ # 构建产物 └── windows/ ├── icon.ico └── installer/ # NSIS 安装包 ``` --- ## 🔧 服务管理命令 部署在 Linux 服务器后,使用以下命令管理 DBBridge: ```bash # 启动 sudo systemctl start dbbridge # 停止 sudo systemctl stop dbbridge # 重启 sudo systemctl restart dbbridge # 查看运行状态 sudo systemctl status dbbridge # 查看实时日志 sudo journalctl -u dbbridge -f # 或查看日志文件 tail -f /var/log/dbbridge/dbbridge.log # 开机自启 sudo systemctl enable dbbridge # 关闭开机自启 sudo systemctl disable dbbridge ``` --- ## ❓ 常见问题
Q: Windows 上运行提示"缺少 DLL"、闪退或"不是有效的 Win32 程序"? DBBridge 是基于 WebView2 的桌面应用,需要 **WebView2 运行时**: 1. **Windows 10/11 通常已内置** WebView2,大多数用户无需额外安装 2. 如果双击后闪退,请下载安装 [WebView2 运行时](https://developer.microsoft.com/microsoft-edge/webview2/) 3. 确保下载的是 Windows 版本的 `DBBridge.exe`(非 Linux 版) 4. 如果仍报错,可能系统缺少 Visual C++ 运行库,请安装 [VC++ 运行库](https://aka.ms/vs/17/release/vc_redist.x64.exe)
Q: macOS 上提示"无法验证开发者"或"已损坏"? 打开"系统设置 → 隐私与安全性",在"安全性"部分点击"仍要打开"。 或在终端执行: ```bash xattr -cr /Applications/DBBridge.app ```
Q: Linux 安装脚本报错"未找到二进制文件"? 请确保下载的是完整发布包(zip),解压后 `install.sh` 和 `dbbridge` 二进制在同一目录。 ```bash # 正确流程 wget /dbbridge-2.0.0-linux-amd64.zip unzip dbbridge-2.0.0-linux-amd64.zip cd dbbridge-2.0.0-linux-amd64 sudo bash install.sh ``` 如果你是从源码编译安装,请使用项目根目录的 `install.sh`(它会自动安装 Go/Node 并编译)。
Q: 迁移大表很慢怎么办? 调整迁移选项: 1. 增大批量大小(BatchSize):如 10000-50000 2. 增加并发表数(Concurrency):如 8 3. 关闭"迁移前备份"(如果确认不需要回滚) 4. 确保源库和目标库网络通畅
Q: 宝塔反代后访问显示 502 Bad Gateway? 1. 检查 DBBridge 服务是否运行:`systemctl status dbbridge` 2. 检查端口是否一致:Nginx 配置中的 `proxy_pass` 端口要和 DBBridge 运行端口一致 3. 检查防火墙:`ufw allow 8989/tcp` 或 `firewall-cmd --add-port=8989/tcp --permanent` 4. 查看日志:`tail -f /var/log/dbbridge/dbbridge.log`
Q: 连接国产数据库(达梦/金仓)失败? 国产数据库需要额外配置: - **达梦 DM8**:确保 `dm.ini` 中 `PORT = 5236`,用户有查询权限 - **人大金仓**:默认端口 `54321`,确保监听非 `localhost` - 如果持续失败,请在 Issue 中附带数据库版本和错误信息反馈
Q: 迁移中断了,数据会丢吗? 不会。如果开启了"迁移前备份": 1. 目标库的同名表已自动备份为 `_bak_` 前缀 2. 已成功写入的表数据保留在目标库 3. 失败的表可通过"备份管理"页面恢复 4. 重新迁移时,已存在的表可勾选"删除已存在"选项重新写入
--- ## 🆚 与其他工具对比 | 对比维度 | **DBBridge** | DBSwitch | Navicat | DBeaver | DataX | |----------|:----------:|:--------:|:-------:|:-------:|:-----:| | **单文件零依赖** | ✅ | ❌ 需 JVM | ❌ 安装包大 | ❌ 需 JDK | ❌ 需 JDK | | **图形界面** | ✅ 桌面 | ✅ Web | ✅ 桌面 | ✅ 桌面 | ❌ | | **跨数据库迁移** | ✅ 10 种 | ✅ 20+ | 有限支持 | ❌ 不支持 | 有限支持 | | **SQL 文件输入** | ✅ 核心特性 | ❌ | ❌ | 仅执行 | ❌ | | **国产数据库** | ✅ 重点 | ✅ | 有限 | 有限 | 有限 | | **备份与回滚** | ✅ | ❌ | ❌ | ❌ | ❌ | | **学习成本** | ⭐ 极低 | 中 | 中 | 中 | 高 | | **开源免费** | ✅ AGPLv3 | ✅ GPLv3 | ❌ | ✅ | ✅ | --- ## 🤝 参与贡献 欢迎提交 Issue 和 PR! - **Bug 反馈**:[提交 Issue](https://github.com/suoten/dbbridge/issues/new?labels=bug) - **功能建议**:[提交 Issue](https://github.com/suoten/dbbridge/issues/new?labels=enhancement) - **代码贡献**:Fork → 开发分支 → 提交 PR - **适配器开发**:参考 `internal/adapter/mysql/adapter.go` 实现新的数据库适配器 ### 开发环境搭建 ```bash # 克隆代码 git clone https://github.com/suoten/dbbridge.git cd dbbridge # 安装 Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # 开发模式(热重载) wails dev # 构建桌面发布版 wails build # 打包多平台发布包(Windows PowerShell) powershell -ExecutionPolicy Bypass -File make-release.ps1 -Version 2.0.0 ``` --- ## 📄 开源协议 本项目采用 [AGPLv3](LICENSE) 协议开源。 - ✅ 个人使用、学习、研究:**免费** - ✅ 企业内部使用:**免费** - ✅ 社区贡献:**欢迎** - ⚠️ 商业分发/SaaS 服务:需联系商业授权 --- ## 📞 联系我们 - **GitHub**: [https://github.com/suoten/dbbridge](https://github.com/suoten/dbbridge) - **Gitee**: [https://gitee.com/suoten/dbbridge](https://gitee.com/suoten/dbbridge) - **Issue**: [https://github.com/suoten/dbbridge/issues](https://github.com/suoten/dbbridge/issues) - **QQ 群**: [1098728913](https://qm.qq.com/q/1098728913)(加群交流、问题反馈、功能建议) --- ## 🙏 致谢 - [Wails](https://wails.io) — 使用 Go + Web 技术构建桌面应用 - [Vue.js](https://vuejs.org) — 渐进式 JavaScript 框架 - [Lucide Icons](https://lucide.dev) — 美观开源的图标库 - [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) — MySQL 驱动 - [lib/pq](https://github.com/lib/pq) — PostgreSQL 驱动 - [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) — 纯 Go 实现的 SQLite ---
### 数据迁移,一键搞定 **让数据库之间的数据流通变得简单** ⭐ 如果 DBBridge 帮到了你,给个 Star 支持一下!