{"id":25863850,"url":"https://github.com/huajiao996/db_copier","last_synced_at":"2026-02-13T23:33:28.432Z","repository":{"id":278521508,"uuid":"935792126","full_name":"HuaJiao996/db_copier","owner":"HuaJiao996","description":"📊 基于 Tauri + Vue 3 构建的现代化 PostgreSQL 数据库复制工具，支持 SSH 隧道连接和数据脱敏功能。跨平台支持，提供友好的图形界面。","archived":false,"fork":false,"pushed_at":"2025-02-27T10:04:49.000Z","size":525,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-27T13:29:10.386Z","etag":null,"topics":["postgresql","rust","tauri","vue"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HuaJiao996.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-20T02:59:10.000Z","updated_at":"2025-02-27T10:04:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"3910fb77-0834-438b-ba5d-0ea06d68ef92","html_url":"https://github.com/HuaJiao996/db_copier","commit_stats":null,"previous_names":["huajiao996/db_copier"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HuaJiao996%2Fdb_copier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HuaJiao996%2Fdb_copier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HuaJiao996%2Fdb_copier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HuaJiao996%2Fdb_copier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HuaJiao996","download_url":"https://codeload.github.com/HuaJiao996/db_copier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241443427,"owners_count":19963744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["postgresql","rust","tauri","vue"],"created_at":"2025-03-02T00:26:44.653Z","updated_at":"2026-02-13T23:33:28.155Z","avatar_url":"https://github.com/HuaJiao996.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PostgreSQL 数据库复制工具 [WIP]\n\n这是一个PostgreSQL数据库复制工具，基于Tauri和Vue构建，支持通过SSH隧道连接远程数据库，并提供数据脱敏功能。提供现代化的桌面应用界面进行配置和操作。\n\n\u003e **注意**: 本项目目前处于开发中 (Work In Progress)，部分功能可能不完整或存在变更。\n\n## 功能特点\n\n- 基于Tauri 2.0构建的跨平台桌面应用\n- 现代化的Vue 3用户界面，使用Element Plus组件库\n- 支持通过SSH隧道连接远程PostgreSQL数据库\n- 支持选择性复制表和列\n- 提供多种数据脱敏方法：\n  - 部分掩码（保留首尾字符）\n  - 哈希掩码\n  - 随机替换\n- 详细的操作日志记录\n- 使用配置文件管理连接信息和脱敏规则\n- 任务管理功能：\n  - 实时监控任务进度\n  - 支持批量启动任务\n  - 任务状态筛选和搜索\n  - 自动刷新运行中的任务状态\n  - 详细的任务执行记录\n\n## 安装\n\n### 从发布版本安装\n\n访问 [Releases](https://github.com/HuaJiao996/db_copier/releases) 页面下载适用于您操作系统的安装包：\n\n- Windows: `.msi` 或 `.exe`\n- macOS: `.dmg`\n- Linux: `.deb` 或 `.AppImage`\n\n### 从源码构建\n\n1. 确保已安装以下依赖：\n   - Node.js 18+\n   - Rust 1.75+\n   - pnpm 8+\n   - 系统依赖（参见 [Tauri 前置要求](https://tauri.app/v1/guides/getting-started/prerequisites)）\n\n2. 克隆仓库：\n```bash\ngit clone https://github.com/HuaJiao996/db_copier.git\ncd db_copier\n```\n\n3. 安装依赖：\n```bash\n# 安装前端依赖\npnpm install\n\n# 安装 Rust 依赖（自动完成）\n```\n\n4. 开发模式运行：\n```bash\npnpm tauri dev\n```\n\n5. 构建发布版本：\n```bash\npnpm tauri build\n```\n\n## 技术栈\n\n### 前端技术栈\n- Vue 3.5.13\n- TypeScript 5.7.3\n- Vite 6.1.1\n- Element Plus 2.4.4\n- Vue Router 4.2.5\n- Pinia 3.0.1\n- @vueuse/core 12.7.0\n\n### 后端技术栈\n- Rust 1.75+\n- Tauri 2.2.7\n- tokio-postgres 0.7.13\n- ssh2 0.9\n- tokio 1.36 (异步运行时)\n- rusqlite 0.30.0 (本地数据存储)\n\n## 贡献指南\n\n1. Fork 本仓库\n2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交您的改动 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 创建一个 Pull Request\n\n## 许可证\n\n本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情\n\n## 注意事项\n\n1. 请确保SSH密钥或密码配置正确\n2. 建议使用SSH密钥认证而不是密码认证\n3. 目标数据库需要有足够的权限创建表和写入数据\n4. 建议在执行大规模数据复制前先进行小规模测试\n5. 所有密码和敏感信息都经过加密存储\n6. 应用日志保存在系统用户目录下的应用数据文件夹中\n\n## 使用说明\n\n### 配置管理\n\n1. 在配置管理页面可以创建、编辑、复制和删除配置\n2. 每个配置包含源数据库、目标数据库和表配置信息\n3. 支持SSH隧道连接远程数据库\n4. 可以选择要复制的表和列，并配置数据脱敏规则\n\n### 任务管理\n\n1. 任务监控：\n   - 实时显示任务执行进度\n   - 自动刷新运行中的任务状态（每5秒）\n   - 显示当前运行中的任务数量\n\n2. 任务筛选：\n   - 按状态筛选（运行中、等待中、已完成、失败）\n   - 支持任务ID和消息内容搜索\n   - 分页显示任务列表\n\n3. 任务操作：\n   - 支持单个任务启动\n   - 支持批量任务启动\n   - 查看任务详细信息\n   - 手动刷新任务状态\n\n4. 任务状态说明：\n   - 等待中：任务已创建但尚未开始执行\n   - 运行中：任务正在执行\n   - 已完成：任务成功完成\n   - 失败：任务执行失败，可查看错误信息\n\n## 系统要求\n\n- **Windows**: Windows 10/11 64位\n- **macOS**: macOS 11.0+ (Big Sur及以上)\n- **Linux**: 支持Debian/Ubuntu、Fedora、Arch等主流发行版\n\n## 常见问题\n\n1. **Q: 如何解决SSH连接失败的问题？**  \n   A: 请检查SSH主机地址、端口、用户名和密钥文件路径是否正确。确保目标服务器允许SSH连接，并且您的密钥有正确的权限。\n\n2. **Q: 数据库连接失败怎么办？**  \n   A: 检查数据库主机、端口、用户名和密码是否正确。如果使用SSH隧道，确保SSH连接正常。\n\n3. **Q: 应用崩溃或无响应怎么办？**  \n   A: 请查看应用日志文件，位于系统用户目录下的应用数据文件夹中。如果问题持续，请在GitHub上提交issue。 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuajiao996%2Fdb_copier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuajiao996%2Fdb_copier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuajiao996%2Fdb_copier/lists"}