我的第一款通过智能体生成的完整跨平台桌面应用
2026/9/16 9:09:58 网站建设 项目流程

应用说明

纯AI智能体开发,本人只负责监督、试用和反馈
期间尝试了codex、claude、deepseek harness,以及多智能体编排(多智能体编排,参照: 多agent协作开发实例-CSDN博客 和 Harness engineering 第一课-CSDN博客)

项目地址: Uni-lovenix/data-migration2

可直接安装使用的release版本:https://github.com/Uni-lovenix/data-migration2/releases

目前已支持 mac/windows

======================

以下正式介绍此应用(工具)

DataMigrator v0.1.0

DataMigrator 的整体架构采用「Electron 桌面壳 + React UI + Go 迁移引擎 + SQLite 状态存储」的分层设计。用户通过 React 界面发起迁移请求,经 Electron 主进程的安全 IPC 转发给 Go 引擎执行,引擎将任务进度与状态写入 SQLite 持久化,整体调用关系如下图所示:

各模块职责如下:

  • Electron 桌面壳:负责应用生命周期、窗口管理与安全 IPC 通信,是 React UI 与 Go 引擎之间的桥梁,同时承载多数据库连接配置的本地持久化。
  • React UI:提供连接管理、迁移发起、任务中心、模板管理、智能体对话与 Token-In 控制台等交互界面,将用户操作转换为具体的迁移指令。
  • esmigrator:面向 Elasticsearch 的迁移引擎,负责索引数据的导出、导入与端到端直传。
  • pgmigrator:面向 PostgreSQL 的迁移引擎,负责表数据的导出、导入与端到端直传。
  • dispatcher:并行调度器,负责任务分发、进度上报、取消与断点续传,是保证大文件流式传输稳定性的核心。
  • SQLite 状态存储:持久化任务队列、断点信息、迁移模板与会话数据,保证应用重启后任务状态可恢复。
首个公开版本:PostgreSQL / Elasticsearch 数据导出与导入的跨平台桌面工具,
内置 Go 迁移引擎,支持大文件流式传输、断点续传与多任务并行调度。

⚡ 一句话摘要

  • ✅ PostgreSQL & Elasticsearch 7.10.2+ 的导出 / 导入 / 端到端直传
  • ✅ Go 引擎:esmigrator(ES)+pgmigrator(PG)+dispatcher(并行调度)
  • ✅ 任务队列、进度上报、取消、断点续传、SQLite 状态持久化
  • ✅ 迁移模板:保存常用配置,一键批量执行
  • ✅ LLM 配置(Ollama / Anthropic / OpenAI)+ 智能体对话(AIIP 风格 function calling)
  • ✅ Token-In 控制台:通过 API Token 在远程机器以 curl / 简化 UI 触发迁移
  • ✅ macOS dmg / zip、Windows NSIS 安装包,绿色版可执行文件

🚀 快速开始

Windows

:: 双击安装或在 cmd 中: DataMigrator-0.1.0-win-x64.exe :: 或者直接运行绿色版: release\win-unpacked\DataMigrator.exe

启动后默认进入总览页。首次使用:

  1. 「连接」→ 新增 PostgreSQL / Elasticsearch 连接(连接信息持久化在 userData)。
  2. 「迁移」→ 选择源/目标、索引或表、批量参数,发起任务。
  3. 「任务中心」→ 查看进度、取消、续传。
  4. 「模板」→ 把常用迁移保存为模板,下次一键批量执行。
  5. 「智能体」→ 用自然语言发起迁移(AIIP 风格 function calling)。
  6. 「Token-In」→ 生成 API Token,在远程用 curl 调用。
  7. 「LLM 配置」→ 配置 Ollama / Anthropic / OpenAI,启用智能体与日志路由。

macOS

后续补充

桌面与 UI

  • 桌面壳:Electron 33 + React 19 + TypeScript 5,安全 IPC,多数据库连接配置 CRUD 与本地持久化。
  • 迁移模板:TemplatesPage 提供模板 CRUD UI、多选 checkbox、ExecuteModal 单模板执行、BatchExecuteModal 并行多模板执行;变量占位符({DATE}/{NOW}/{TIMESTAMP}+ 自定义变量)。
  • Agentic 智能体:参考 AIIP 项目,11 个工具 schema(list_connections / list_templates / execute_template / list_tasks / cancel_task / run_postgres_export / run_postgres_import / run_elasticsearch_export / run_elasticsearch_import / list_llm_configs),3 种 Provider 序列化器,会话 + 消息历史持久化到agent_sessions.db
  • Token-In 控制台:独立 tab,token 验证后展示连接列表 / 模板列表 / 任务列表,「执行」按钮调用 REST API;主进程通过restApi:callIPC 转发请求避免 CORS。
  • API Token 管理:在 LLM 配置页底部创建 / 列表 / 复制 / 吊销 API Token;格式dtm_<48位十六进制>,吊销后立即生效无需重启。

打包与交付

  • macOSnpm run package:macrelease/DataMigrator-0.1.0-mac-<arch>.{dmg,zip}
  • Windowsnpm run package:winrelease/DataMigrator-0.1.0-win-x64.exe(NSIS)+release/win-unpacked/(绿色版)。
  • NSIS 安装时用户可选安装目录,并自动生成桌面 / 开始菜单快捷方式。

✅ 验收清单(构建期已通过)

  • [x]npm run check通过(typecheck + 单元测试 + Go 单元测试)
  • [x]npm run build通过(electron-vite 产出out/
  • [x]npm run build:go:win通过(Go 引擎 Windows x64 交叉编译)
  • [x]npx electron-builder --win通过(NSIS 安装包 + win-unpacked 绿色版)
  • [x] Docker PostgreSQL 16 集成测试通过
  • [x] Docker Elasticsearch 7.10.2 / 9.5.0 集成测试通过
  • [x] 打包后esmigrator.exe --help烟测通过

⚠️ 已知问题

  • 任务队列当前为单并发顺序执行;并行迁移能力已在 Go 引擎层就绪(--parallel N),UI 层入口计划在下一迭代补齐。
  • 断点续传以批量边界为粒度,批量写入中途取消可能产生重复或缺失。
  • 连接密码尚未加密存储,建议发布前接入系统钥匙串或 ElectronsafeStorage(LLM 配置已使用 safeStorage,连接密码暂未)。
  • Windows NSIS 安装包需在 Windows 环境或 CI 构建;本地 macOS 无法直接验证 NSIS 安装流程。
  • electron-builder默认publish通道指向本仓库(Uni-lovenix/data-migration2),如不发布到 GitHub Releases 可在package.json中设置"publish": null

🛠️ 从源码构建

需要 Node.js ≥ 18、Go ≥ 1.22。

git clone https://github.com/Uni-lovenix/data-migration2.git cd data-migration2 npm install npm run check # 类型检查 + 单元测试 + Go 单元测试 npm run dev # 开发模式启动 Electron # 打包当前平台 npm run package:mac # macOS dmg / zip npm run package:win # Windows NSIS(需在 Windows 或交叉编译环境)

启动脚本start.cmd(Windows)和start.sh(macOS / Linux)会自动检测 Go 是否在 PATH、探测常见安装目录,并在缺失依赖时执行npm install

📚 文档

  • README.md
  • docs/release.md — 发布说明与产物清单
  • docs/PROCESS.md — RUP 过程协议
  • docs/architecture.md — 架构说明
  • progress.md — 当前会话进度

🙏 致谢

  • AIIP — 智能体对话 / function calling 模式参考
  • Electron、React、Vite、sql.js、pg、pg-query-stream、go-elasticsearch、lib/pq 等开源依赖

/p>

/p>

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询