# db2db **Repository Path**: chusj/db2db ## Basic Information - **Project Name**: db2db - **Description**: 从Oracle一键迁移到mysql、postgresql - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Db2Db - 数据库结构与数据迁移工具 Db2Db 是一个强大且易用的异构数据库迁移工具。它能够自动读取源数据库的表结构和数据,在目标数据库中创建对应的表,并高效地完成全量数据的同步。 目前主要支持从 **Oracle** 迁移至 **MySQL** 或 **PostgreSQL**。 ![运行效果](./result.png) ## ✨ 核心特性 - **自动类型映射**:内置 Oracle 到 MySQL/PostgreSQL 的基础字段类型映射,自动完成 DDL 转换与建表。 - **双端交互形态**: - **WPF 桌面端**:提供直观的五阶段可视化向导(连接配置 -> 对象选择 -> 迁移策略 -> 执行监控 -> 结果报告)。 - **CLI 命令行**:提供 `migrate`、`validate`、`resume`、`rerun_failed` 等命令,轻松集成到自动化脚本中。 - **高可用与容错**: - **断点续跑**:基于 Checkpoint 机制,中断后可跳过已成功表,仅重跑未完成的任务。 - **失败重试与重跑**:支持配置批写入的自动重试次数与延迟,并提供失败表一键重跑闭环。 - **无主键表智能处理**:针对无主键的表,支持 `surrogate_auto_increment`(自动补充 `__row_id`)或 `surrogate_hash`(计算行哈希 `__row_hash`)策略。 - **数据一致性校验**:迁移后自动执行表结构与行数一致性比对,并生成详细的迁移报告。 ## 🚀 快速开始 ### 目录结构 ```text db2db/ ├─ src/ │ ├─ Db2Db.Core/ # 核心抽象、配置模型、迁移编排 │ ├─ Db2Db.Infrastructure/ # 各数据库方言适配与 SQL 实现 │ ├─ Db2Db.Cli/ # 命令行应用入口 │ └─ Db2Db.Desktop/ # WPF 可视化桌面入口 ├─ tests/ │ └─ Db2Db.Tests/ # 核心逻辑与 SQL 构造单元测试 └─ Db2Db.sln # 解决方案文件 ``` ### 运行指南 1. **桌面端 (GUI)**: 编译并启动 `Db2Db.Desktop` 项目,根据界面向导进行数据库连接测试和迁移任务配置即可开始。 2. **命令行 (CLI)**: 详细命令及参数请参考:[CLI 使用文档](docs/cli.md) 配置模板可参考:`src/Db2Db.Cli/appsettings.example.jsonc` ## 🗺️ 路线图 (Roadmap) - [x] 基础架构搭建与配置解析 - [x] Oracle 源端元数据及数据读取 - [x] MySQL / PostgreSQL 目标端建表与批量插入 - [x] 断点续跑与 Checkpoint 状态恢复 - [x] 无主键表处理策略 - [x] 结构与行数一致性校验 - [x] 失败任务自动重试与重跑闭环 - [x] WPF 桌面端可视化操作闭环 - [ ] 抽样字段值校验与差异明细报告 - [ ] 提升编排层与端到端集成测试覆盖率 - [ ] 扩展支持更多目标数据库类型 ## 🤝 参与贡献 欢迎提交 Issue 或 Pull Request!无论是新功能建议、Bug 修复、还是文档改进,我们都非常期待您的加入。 ## 📄 许可证 本项目采用 MIT 许可证,详情请参见 [LICENSE](LICENSE) 文件。