跨平台数据库连接管理工具,支持多种数据库类型(Oracle, PostgreSQL, SQL Server, MySQL, SQLite, GBase 8s)
Project description
DB Connector
一个安全、跨平台的Python数据库连接管理工具,支持多种主流数据库并提供加密存储功能。
✨ 特性
- 🔐 安全加密: 使用
cryptography.fernet加密敏感连接信息 - 📁 配置管理: 基于 TOML 的配置文件,支持备份功能
- 🗄️ 多数据库支持:
- Oracle (oracledb)
- PostgreSQL (psycopg3)
- SQL Server (pymssql)
- MySQL (pymysql)
- SQLite (sqlite3)
- GBase 8s (JDBC驱动)
- 🏗️ ORM 集成: 基于 SQLAlchemy 2.0+ 的现代化ORM支持
- 📊 完整日志: 使用 logging 模块记录详细操作日志
- 🌐 跨平台: 支持 Windows、Linux、macOS
- 🧪 完整测试: 包含单元测试和集成测试
- 💻 CLI 工具: 提供命令行界面进行连接管理
📦 安装
从源码安装
git clone https://github.com/wangquanqing/db-connector-tool.git
cd db-connector-tool
pip install -e .
从 PyPI 安装
pip install db-connector-tool
🚀 快速开始
基础用法
from db_connector_tool import DatabaseManager
# 创建数据库管理器
db_manager = DatabaseManager()
# 添加MySQL连接配置
mysql_config = {
'type': 'mysql',
'host': 'localhost',
'port': 3306,
'username': 'your_username',
'password': 'your_password',
'database': 'your_database'
}
db_manager.add_connection('mysql_db', mysql_config)
# 执行查询
results = db_manager.execute_query('mysql_db', 'SELECT * FROM users LIMIT 10')
print(results)
# 关闭所有连接
db_manager.close_all_connections()
多数据库操作示例
from db_connector_tool import DatabaseManager
db_manager = DatabaseManager()
# 配置多个数据库连接
databases = {
'app_db': {
'type': 'postgresql',
'host': 'db.server.com',
'username': 'user',
'password': 'pass',
'database': 'application'
},
'log_db': {
'type': 'sqlite',
'database': '/path/to/logs.db'
}
}
for name, config in databases.items():
db_manager.add_connection(name, config)
# 跨数据库操作
users = db_manager.execute_query('app_db', 'SELECT * FROM users')
db_manager.execute_command('log_db', 'INSERT INTO access_log VALUES (?, ?)', (user_id, 'login'))
db_manager.close_all_connections()
🔧 命令行工具
基本命令
# 查看帮助
db-connector --help
# 列出所有连接
db-connector list
# 添加新连接
db-connector add mysql-dev --type mysql --host localhost --username root --password your_password --database app_db
# 测试连接
db-connector test mysql-dev
# 执行查询
db-connector query mysql-dev "SELECT * FROM users"
# 进入交互式SQL Shell
db-connector shell mysql-dev
📋 API 参考
DatabaseManager 类
主要管理类,提供以下方法:
add_connection(name, config)- 添加数据库连接配置get_connection(name)- 获取数据库连接execute_query(connection_name, query, params)- 执行查询语句execute_command(connection_name, command, params)- 执行命令语句test_connection(name)- 测试连接是否正常list_connections()- 列出所有连接配置remove_connection(name)- 删除连接配置close_connection(name)- 关闭指定连接close_all_connections()- 关闭所有连接
ConfigManager 类
配置管理类,提供以下方法:
get_connection(name)- 获取连接配置remove_connection(name)- 删除连接配置list_connections()- 列出所有连接配置
🔒 安全特性
加密存储
所有敏感信息(密码、连接字符串等)都会自动加密存储:
# 配置会自动加密存储
config = {
'type': 'mysql',
'host': 'localhost',
'username': 'user',
'password': 'secret_password'
}
配置文件位置
- 配置文件:
~/.config/db_connector_tool/connections.toml - 日志文件:
~/.config/db_connector_tool/logs/db_connector_tool.log - 加密密钥:
~/.config/db_connector_tool/encryption.key
🧪 开发
运行测试
# 运行所有测试
pytest
# 运行特定测试模块
pytest tests/test_database.py
# 带覆盖率的测试
pytest --cov=db_connector_tool tests/
# 运行快速测试(跳过慢速测试)
pytest -m "not slow"
代码质量
# 代码格式化
black db_connector_tool/ tests/
# 代码检查
flake8 db_connector_tool/ tests/
# 类型检查
mypy db_connector_tool/
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
📞 支持
如有问题请:
- 查看文档和示例代码
- 提交 GitHub Issue
- 联系维护者: wangquanqing1636@sina.com
📚 相关项目
- SQLAlchemy - Python SQL 工具包和 ORM
- cryptography - Python 加密库
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
db_connector_tool-0.4.7.tar.gz
(63.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file db_connector_tool-0.4.7.tar.gz.
File metadata
- Download URL: db_connector_tool-0.4.7.tar.gz
- Upload date:
- Size: 63.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.3 cpython/3.14.3 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29a64dd7dcc18bc24e327d4e14ce66d39c586ae9b79f66b566ba5fda41ea376c
|
|
| MD5 |
ba925b34f335bd7791af6eac0a83ab8f
|
|
| BLAKE2b-256 |
8aa4d68275ce77cb5128bf7abc3d2753812d5e8d005df81d18a0cba545ea53a2
|
File details
Details for the file db_connector_tool-0.4.7-py3-none-any.whl.
File metadata
- Download URL: db_connector_tool-0.4.7-py3-none-any.whl
- Upload date:
- Size: 68.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.3 cpython/3.14.3 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36a44abbd4e602f265e5c31652077a2635a8198e0fb436cab66b66986673af59
|
|
| MD5 |
5e85bef3056d096189f31023d0f55bc7
|
|
| BLAKE2b-256 |
86742b1bee95086b661a3b2fd38cf4cba33bae6486c5253dac6df7ec2ea240b9
|