一键导入
peewee-xugudb-adapter
Peewee 轻量级 Python ORM 适配虚谷数据库(XuguDB)的指南。当用户需要在 Peewee 项目中通过 xgcondb 或 DB-API 兼容驱动连接虚谷数据库时使用此技能,包括驱动安装、Database 封装、模型映射、CRUD、事务和测试验证。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Peewee 轻量级 Python ORM 适配虚谷数据库(XuguDB)的指南。当用户需要在 Peewee 项目中通过 xgcondb 或 DB-API 兼容驱动连接虚谷数据库时使用此技能,包括驱动安装、Database 封装、模型映射、CRUD、事务和测试验证。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Activiti 工作流引擎与虚谷数据库(XuguDB)集成适配指南。当用户需要在 Spring Boot 项目中使用 Activiti 工作流引擎连接 XuguDB 时使用此技能,包括流程引擎配置、数据源设置、BPMN 流程定义、任务管理、历史记录查询等。适用于企业级工作流应用、审批流程、业务流程自动化等场景。
AnyLine 动态数据源框架适配虚谷数据库(XuguDB)的完整指南。当用户需要将基于 AnyLine 的 Java 项目配置或适配到虚谷数据库时使用此技能,包括动态数据源注册、切换、元数据操作、DDL/DML 自动生成等。适用于数据中台、低代码平台、异构数据库迁移等场景。
Azkaban 工作流管理器适配虚谷数据库(XuguDB)的完整指南。当用户需要将基于 Azkaban 的工作流管理器配置或适配到虚谷数据库时使用此技能,包括安装部署、数据库配置、工作流定义、任务调度、监控管理等。适用于大数据作业调度和管理场景。
Camunda BPM 平台适配虚谷数据库(XuguDB)的完整指南。当用户需要将基于 Camunda 的工作流和决策自动化平台配置或适配到虚谷数据库时使用此技能,包括安装部署、数据库配置、BPMN 流程定义、任务管理、REST API、UI 管理界面等。适用于企业级工作流应用、审批流程、业务流程自动化、案例管理等场景。
CloudBeaver 云数据库管理器适配虚谷数据库(XuguDB)的完整指南。当用户需要使用 CloudBeaver 连接和管理虚谷数据库时使用此技能,包括部署安装、驱动配置、连接管理、用户权限等。适用于团队协作、远程数据库管理场景。
DataEase 开源 BI 工具适配虚谷数据库(XuguDB)的完整指南。当用户需要将 DataEase 连接到虚谷数据库进行数据可视化分析时使用此技能,包括驱动配置、数据源连接、数据集创建、仪表板设计等。适用于企业数据可视化、自助分析、报表分享等场景。
| name | peewee-xugudb-adapter |
| description | Peewee 轻量级 Python ORM 适配虚谷数据库(XuguDB)的指南。当用户需要在 Peewee 项目中通过 xgcondb 或 DB-API 兼容驱动连接虚谷数据库时使用此技能,包括驱动安装、Database 封装、模型映射、CRUD、事务和测试验证。 |
Peewee 没有内置 XuguDB 方言时,可以通过虚谷 Python 驱动提供的 DB-API 能力封装 Database 子类,复用 Peewee 的模型、查询构造和事务能力。适配重点是连接参数、SQL 差异、字段类型映射和分页语法。
1. 安装依赖 -> 2. 封装 Database -> 3. 配置模型 -> 4. 验证 CRUD -> 5. 校验事务与分页
pip install peewee
同时准备虚谷 Python 驱动 xgcondb,确保应用运行环境可以导入:
import xgcondb
优先使用虚谷 Python 驱动的 DB-API 接口作为底层连接。下面示例提供最小封装,实际项目可继续扩展字段类型、分页编译和异常映射。
import xgcondb
from peewee import Database
class XuguDatabase(Database):
field_types = {
"AUTO": "INTEGER",
"BIGAUTO": "BIGINT",
"BIGINT": "BIGINT",
"BLOB": "BLOB",
"BOOL": "BOOLEAN",
"DATETIME": "DATETIME",
"DECIMAL": "NUMERIC",
"DOUBLE": "DOUBLE",
"FLOAT": "FLOAT",
"INT": "INTEGER",
"TEXT": "CLOB",
"UUID": "VARCHAR(36)",
"VARCHAR": "VARCHAR",
}
def _connect(self):
return xgcondb.connect(
database=self.database,
user=self.connect_params.get("user", "SYSDBA"),
password=self.connect_params.get("password"),
host=self.connect_params.get("host", "127.0.0.1"),
port=self.connect_params.get("port", 5138),
)
db = XuguDatabase(
"SYSTEM",
user="SYSDBA",
password="SYSDBA",
host="127.0.0.1",
port=5138,
)
from peewee import CharField, IntegerField, Model
class BaseModel(Model):
class Meta:
database = db
class User(BaseModel):
id = IntegerField(primary_key=True)
name = CharField(max_length=100)
age = IntegerField(null=True)
class Meta:
table_name = "users"
db.connect()
db.create_tables([User])
User.create(id=1, name="Alice", age=30)
user = User.get(User.id == 1)
user.age = 31
user.save()
rows = list(User.select().where(User.age >= 18))
User.delete().where(User.id == 1).execute()
db.close()
with db.atomic():
User.create(id=2, name="Bob", age=25)
User.create(id=3, name="Carol", age=28)
page_rows = list(
User.select()
.order_by(User.id)
.paginate(1, 20)
)
验证时至少覆盖:
SELECT 1 可执行。create_tables 生成的字段类型符合预期。atomic() 可提交和回滚。paginate() 生成 SQL 后能在当前兼容模式下执行。虚谷项目中建议显式确认自增列或序列策略。若 Peewee 默认 AutoField 生成的 DDL 不符合项目规范,改用 IntegerField(primary_key=True) 并由业务或序列分配主键。
如果 Peewee 生成的分页语法与当前虚谷兼容模式不一致,优先切换连接串兼容模式;仍不满足时,在 XuguDatabase 中扩展 SQL 编译逻辑。
通过模型字段参数指定 constraints 或扩展 field_types。生产迁移前应导出 DDL 并人工审核。