https://github.com/huajiao996/db_copier
📊 基于 Tauri + Vue 3 构建的现代化 PostgreSQL 数据库复制工具,支持 SSH 隧道连接和数据脱敏功能。跨平台支持,提供友好的图形界面。
https://github.com/huajiao996/db_copier
postgresql rust tauri vue
Last synced: 5 months ago
JSON representation
📊 基于 Tauri + Vue 3 构建的现代化 PostgreSQL 数据库复制工具,支持 SSH 隧道连接和数据脱敏功能。跨平台支持,提供友好的图形界面。
- Host: GitHub
- URL: https://github.com/huajiao996/db_copier
- Owner: HuaJiao996
- License: mit
- Created: 2025-02-20T02:59:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-27T10:04:49.000Z (over 1 year ago)
- Last Synced: 2025-02-27T13:29:10.386Z (over 1 year ago)
- Topics: postgresql, rust, tauri, vue
- Language: Rust
- Homepage:
- Size: 513 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PostgreSQL 数据库复制工具 [WIP]
这是一个PostgreSQL数据库复制工具,基于Tauri和Vue构建,支持通过SSH隧道连接远程数据库,并提供数据脱敏功能。提供现代化的桌面应用界面进行配置和操作。
> **注意**: 本项目目前处于开发中 (Work In Progress),部分功能可能不完整或存在变更。
## 功能特点
- 基于Tauri 2.0构建的跨平台桌面应用
- 现代化的Vue 3用户界面,使用Element Plus组件库
- 支持通过SSH隧道连接远程PostgreSQL数据库
- 支持选择性复制表和列
- 提供多种数据脱敏方法:
- 部分掩码(保留首尾字符)
- 哈希掩码
- 随机替换
- 详细的操作日志记录
- 使用配置文件管理连接信息和脱敏规则
- 任务管理功能:
- 实时监控任务进度
- 支持批量启动任务
- 任务状态筛选和搜索
- 自动刷新运行中的任务状态
- 详细的任务执行记录
## 安装
### 从发布版本安装
访问 [Releases](https://github.com/HuaJiao996/db_copier/releases) 页面下载适用于您操作系统的安装包:
- Windows: `.msi` 或 `.exe`
- macOS: `.dmg`
- Linux: `.deb` 或 `.AppImage`
### 从源码构建
1. 确保已安装以下依赖:
- Node.js 18+
- Rust 1.75+
- pnpm 8+
- 系统依赖(参见 [Tauri 前置要求](https://tauri.app/v1/guides/getting-started/prerequisites))
2. 克隆仓库:
```bash
git clone https://github.com/HuaJiao996/db_copier.git
cd db_copier
```
3. 安装依赖:
```bash
# 安装前端依赖
pnpm install
# 安装 Rust 依赖(自动完成)
```
4. 开发模式运行:
```bash
pnpm tauri dev
```
5. 构建发布版本:
```bash
pnpm tauri build
```
## 技术栈
### 前端技术栈
- Vue 3.5.13
- TypeScript 5.7.3
- Vite 6.1.1
- Element Plus 2.4.4
- Vue Router 4.2.5
- Pinia 3.0.1
- @vueuse/core 12.7.0
### 后端技术栈
- Rust 1.75+
- Tauri 2.2.7
- tokio-postgres 0.7.13
- ssh2 0.9
- tokio 1.36 (异步运行时)
- rusqlite 0.30.0 (本地数据存储)
## 贡献指南
1. Fork 本仓库
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的改动 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建一个 Pull Request
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 注意事项
1. 请确保SSH密钥或密码配置正确
2. 建议使用SSH密钥认证而不是密码认证
3. 目标数据库需要有足够的权限创建表和写入数据
4. 建议在执行大规模数据复制前先进行小规模测试
5. 所有密码和敏感信息都经过加密存储
6. 应用日志保存在系统用户目录下的应用数据文件夹中
## 使用说明
### 配置管理
1. 在配置管理页面可以创建、编辑、复制和删除配置
2. 每个配置包含源数据库、目标数据库和表配置信息
3. 支持SSH隧道连接远程数据库
4. 可以选择要复制的表和列,并配置数据脱敏规则
### 任务管理
1. 任务监控:
- 实时显示任务执行进度
- 自动刷新运行中的任务状态(每5秒)
- 显示当前运行中的任务数量
2. 任务筛选:
- 按状态筛选(运行中、等待中、已完成、失败)
- 支持任务ID和消息内容搜索
- 分页显示任务列表
3. 任务操作:
- 支持单个任务启动
- 支持批量任务启动
- 查看任务详细信息
- 手动刷新任务状态
4. 任务状态说明:
- 等待中:任务已创建但尚未开始执行
- 运行中:任务正在执行
- 已完成:任务成功完成
- 失败:任务执行失败,可查看错误信息
## 系统要求
- **Windows**: Windows 10/11 64位
- **macOS**: macOS 11.0+ (Big Sur及以上)
- **Linux**: 支持Debian/Ubuntu、Fedora、Arch等主流发行版
## 常见问题
1. **Q: 如何解决SSH连接失败的问题?**
A: 请检查SSH主机地址、端口、用户名和密钥文件路径是否正确。确保目标服务器允许SSH连接,并且您的密钥有正确的权限。
2. **Q: 数据库连接失败怎么办?**
A: 检查数据库主机、端口、用户名和密码是否正确。如果使用SSH隧道,确保SSH连接正常。
3. **Q: 应用崩溃或无响应怎么办?**
A: 请查看应用日志文件,位于系统用户目录下的应用数据文件夹中。如果问题持续,请在GitHub上提交issue。