sqlalchemy-postgres by cfircoo/claude-code-toolkit
npx skills add https://github.com/cfircoo/claude-code-toolkit --skill sqlalchemy-postgres<essential_principles>
此技能为构建生产就绪的数据库层提供专家指导。
1. 关注点分离
models/ # SQLAlchemy ORM 模型(数据库层)
schemas/ # Pydantic 模式(API 层)
repositories/ # 数据访问模式
services/ # 业务逻辑
2. 类型安全优先 始终使用 SQLAlchemy 2.0 风格配合 Mapped[] 类型注解:
from sqlalchemy.orm import Mapped, mapped_column
class User(Base):
__tablename__ = "users"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(100))
3. 默认异步 为 FastAPI 使用异步引擎和会话:
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
engine = create_async_engine("postgresql+asyncpg://...")
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
4. Pydantic-SQLAlchemy 桥接 保持模型和模式分离但可映射:
# 模式从 ORM 读取
class UserRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
5. 仓储模式 抽象数据库操作以提高可测试性和代码整洁度。 </essential_principles>
自动检测触发词(当用户提及以下内容时使用此技能):
<reference_index>
| 参考 | 用途 |
|---|---|
| references/best-practices.md | 生产模式、安全性、性能 |
| references/patterns.md | 仓储模式、工作单元、常见查询 |
| references/async-patterns.md | 异步会话管理、FastAPI 集成 |
| </reference_index> |
<workflows_index>
| 工作流 | 用途 |
|---|---|
| workflows/setup-database.md | 初始化完整的数据库层 |
| workflows/define-models.md | 创建模型 + 模式 + 关系 |
| workflows/create-migration.md | Alembic 迁移工作流 |
| workflows/query-patterns.md | CRUD 操作和优化 |
| </workflows_index> |
<quick_reference>
src/
├── db/
│ ├── __init__.py
│ ├── base.py # DeclarativeBase
│ ├── session.py # 引擎 + 异步会话工厂
│ └── dependencies.py # FastAPI 依赖项
├── models/
│ ├── __init__.py
│ └── user.py # SQLAlchemy 模型
├── schemas/
│ ├── __init__.py
│ └── user.py # Pydantic 模式
├── repositories/
│ ├── __init__.py
│ ├── base.py # 通用仓储
│ └── user.py # 用户仓储
└── alembic/
├── alembic.ini
├── env.py
└── versions/
# 模型
from sqlalchemy import String, Integer, ForeignKey, DateTime
from sqlalchemy.orm import Mapped, mapped_column, relationship, DeclarativeBase
# 异步
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
# Pydantic
from pydantic import BaseModel, ConfigDict, Field
# PostgreSQL 异步
DATABASE_URL = "postgresql+asyncpg://user:pass@localhost:5432/dbname"
</quick_reference>
<success_criteria> 数据库层在以下情况完成:
每周安装量
96
代码仓库
GitHub 星标数
16
首次出现
2026年1月24日
安全审计
安装于
opencode84
codex79
gemini-cli75
github-copilot68
claude-code63
cursor63
<essential_principles>
This skill provides expert guidance for building production-ready database layers.
1. Separation of Concerns
models/ # SQLAlchemy ORM models (database layer)
schemas/ # Pydantic schemas (API layer)
repositories/ # Data access patterns
services/ # Business logic
2. Type Safety First Always use SQLAlchemy 2.0 style with Mapped[] type annotations:
from sqlalchemy.orm import Mapped, mapped_column
class User(Base):
__tablename__ = "users"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(100))
3. Async by Default Use async engine and sessions for FastAPI:
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
engine = create_async_engine("postgresql+asyncpg://...")
4. Pydantic-SQLAlchemy Bridge Keep models and schemas separate but mappable:
# Schema reads from ORM
class UserRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
5. Repository Pattern Abstract database operations for testability and clean code. </essential_principles>
Auto-detection triggers (use this skill when user mentions):
<reference_index>
| Reference | Purpose |
|---|---|
| references/best-practices.md | Production patterns, security, performance |
| references/patterns.md | Repository, Unit of Work, common queries |
| references/async-patterns.md | Async session management, FastAPI integration |
| </reference_index> |
<workflows_index>
| Workflow | Purpose |
|---|---|
| workflows/setup-database.md | Initialize complete database layer |
| workflows/define-models.md | Create models + schemas + relationships |
| workflows/create-migration.md | Alembic migration workflow |
| workflows/query-patterns.md | CRUD operations and optimization |
| </workflows_index> |
<quick_reference>
src/
├── db/
│ ├── __init__.py
│ ├── base.py # DeclarativeBase
│ ├── session.py # Engine + async session factory
│ └── dependencies.py # FastAPI dependency
├── models/
│ ├── __init__.py
│ └── user.py # SQLAlchemy models
├── schemas/
│ ├── __init__.py
│ └── user.py # Pydantic schemas
├── repositories/
│ ├── __init__.py
│ ├── base.py # Generic repository
│ └── user.py # User repository
└── alembic/
├── alembic.ini
├── env.py
└── versions/
# Models
from sqlalchemy import String, Integer, ForeignKey, DateTime
from sqlalchemy.orm import Mapped, mapped_column, relationship, DeclarativeBase
# Async
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
# Pydantic
from pydantic import BaseModel, ConfigDict, Field
# PostgreSQL async
DATABASE_URL = "postgresql+asyncpg://user:pass@localhost:5432/dbname"
</quick_reference>
<success_criteria> Database layer is complete when:
Weekly Installs
96
Repository
GitHub Stars
16
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode84
codex79
gemini-cli75
github-copilot68
claude-code63
cursor63
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
163,300 周安装
minimax-web-search:基于MiniMax MCP服务器的网络搜索工具安装与使用指南
176 周安装
OMERO Python API 集成指南:显微镜图像管理与分析自动化
172 周安装
datamol:Python化学信息学库,简化RDKit分子操作,支持并行计算与云存储
173 周安装
mviz:从JSON/Markdown快速生成数据可视化图表与仪表板 | 简化ECharts开发
177 周安装
macOS辅助功能自动化开发指南:AXUIElement API、TCC权限管理与安全实践
173 周安装
Symfony表单类型验证:强化访问控制与领域规则一致性的完整指南
172 周安装