sqlor/aidocs/aiopostgresqlor.md
2025-10-05 11:24:24 +08:00

93 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AioPostgresqlor 技术文档
```markdown
# `AioPostgresqlor` 类文档
## 概述
`AioPostgresqlor` 是一个基于异步 PostgreSQL 驱动的数据库操作类,继承自 `PostgreSQLor` 基类。该类专为使用 `aiopg` 异步驱动设计,用于支持异步上下文中的数据库事务管理。
> **注意**:当前实现为占位结构,核心方法尚未完成具体逻辑。
---
## 继承关系
- **父类**: `PostgreSQLor`(来自 `.postgresqlor` 模块)
- **子类**: `AioPostgresqlor`
---
## 方法说明
### `isMe(name) -> bool`
#### 描述
类方法,用于判断传入的驱动名称是否匹配当前类所支持的异步驱动(即 `aiopg`)。
#### 参数
| 参数名 | 类型 | 说明 |
|--------|--------|--------------------------|
| `name` | `str` | 数据库驱动的名称字符串。 |
#### 返回值
| 类型 | 说明 |
|-----------|------------------------------------------|
| `bool` | 若 `name == 'aiopg'` 则返回 `True`,否则返回 `False`。 |
#### 示例
```python
if AioPostgresqlor.isMe('aiopg'):
print("适用于 aiopg 驱动")
```
---
### `commit() -> None`
#### 描述
异步方法,用于提交当前数据库事务。目前为空实现(`pass`),需在子类或后续版本中补充实际逻辑。
> ⚠️ **警告**:调用此方法不会产生任何效果,必须重写以实现真正的事务提交功能。
#### 类型
`async def`
#### 使用方式(语法示例)
```python
await instance.commit()
```
#### 注意事项
- 必须在 `async with` 或其他异步上下文中调用。
- 实际行为依赖于底层 `aiopg` 连接对象的实现,建议覆盖此方法以正确调用 `connection.commit()` 或等效操作。
---
## 设计意图
`AioPostgresqlor` 的设计目标是:
- 支持异步 I/O 操作,适配 Python 异步生态(如 `asyncio`)。
- 通过 `isMe()` 方法实现驱动识别,便于工厂模式动态选择数据库操作器。
- 提供与同步版本 `PostgreSQLor` 一致的接口契约,保证代码兼容性。
---
## 待办事项TODO
- [ ] 实现 `commit()` 的真实逻辑(调用 `aiopg` 的事务提交)。
- [ ] 补充 `__init__` 或初始化连接的相关方法。
- [ ] 添加对 `rollback()` 的异步支持。
- [ ] 增加异常处理机制。
- [ ] 提供完整的上下文管理器支持(`__aenter__`, `__aexit__`)。
---
## 参考
- [aiopg 官方文档](https://aiopg.readthedocs.io/)
- 父类 `PostgreSQLor` 的接口定义
```
> ✅ 文档生成时间2025-04-05
> 📦 所属模块:`.postgresqlor` 扩展模块家族