turbopg

GitHub

TurboPG 是用于独立 PostgreSQL 查询的 Python 客户端,支持参数化查询、连接池及上下文管理器。适用于在 TurboAPI 路由外编写数据库代码、运行迁移、数据种子或构建脚本。

.claude/skills/turbopg/SKILL.md justrach/turboAPI

触发场景

需要执行独立的 PostgreSQL 查询 编写数据库迁移脚本 进行数据填充(seeding) 构建与 Postgres 交互的外部脚本

安装

npx skills add justrach/turboAPI --skill turbopg -g -y
更多选项

非标准路径

npx skills add https://github.com/justrach/turboAPI/tree/main/.claude/skills/turbopg -g -y

不安装直接使用

npx skills use justrach/turboAPI@turbopg

指定 Agent (Claude Code)

npx skills add justrach/turboAPI --skill turbopg -a claude-code -g -y

安装 repo 全部 skill

npx skills add justrach/turboAPI --all -g -y

预览 repo 内 skill

npx skills add justrach/turboAPI --list

SKILL.md

Frontmatter
{
    "name": "turbopg",
    "description": "Use TurboPG for standalone Postgres queries. Use when writing database code outside of TurboAPI routes, running migrations, seeding data, or building scripts that talk to Postgres."
}

TurboPG — Standalone Postgres Client

TurboPG ships with TurboAPI and works independently for any Python Postgres work.

Quick start

from turbopg import Database

db = Database("postgres://user:pass@localhost/mydb", pool_size=16)

# Multiple rows
users = db.query("SELECT * FROM users WHERE age > $1 LIMIT $2", [18, 10])

# Single row (or None)
user = db.query_one("SELECT * FROM users WHERE id = $1", [42])

# Execute (INSERT/UPDATE/DELETE) — returns affected row count
db.execute("INSERT INTO users (name, email) VALUES ($1, $2)", ["Alice", "a@b.com"])
affected = db.execute("DELETE FROM users WHERE id = $1", [99])

# Context manager
with Database("postgres://...") as db:
    count = db.query_one("SELECT count(*) as n FROM users")

Parameters

Use $1, $2, ... for parameterized queries (Postgres-native, SQL injection safe):

db.query("SELECT * FROM users WHERE name = $1 AND age > $2", ["Alice", 18])

Return types

  • query()list[dict] — each row as a dict with column names as keys
  • query_one()dict | None — first row or None
  • execute()int — number of affected rows
  • Decimals → float, datetimes → ISO string, memoryview → decoded string

Connection modes

  1. With TurboAPI installed: Uses Zig pg.zig connection pool (zero overhead for TurboAPI db routes)
  2. Standalone: Falls back to psycopg2/psycopg (requires pip install psycopg2-binary)

Unix sockets

db = Database("postgres://user:pass@/var/run/postgresql/mydb")

With TurboAPI

TurboPG powers TurboAPI's db_get, db_post, db_list, db_delete, and db_query decorators. The Zig-native path runs the entire request cycle without Python.

版本历史

  • 0ef167c 当前 2026-07-25 10:01

同 Skill 集合

.claude/skills/turbo-benchmark/SKILL.md
.claude/skills/turbo-build/SKILL.md
.claude/skills/turbo-db-route/SKILL.md
.claude/skills/turbo-route/SKILL.md
.claude/skills/turbo-test/SKILL.md

元信息

文件数
0
版本
1c75a09
Hash
07814cb1
收录时间
2026-07-25 10:01

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-02 10:52
浙ICP备14020137号-1 $访客地图$