关于 sqlalchemy-alembic-expert-best-practices-code-review
为编写、优化或审查数据库代码的开发者提供 SQLAlchemy 与 Alembic 实践指南。内容侧重迁移安全、索引管理和分阶段变更约束,并在各规则文件中提供示例。
主要功能
- 01并发执行索引操作
- 02检查查询模式所需索引
- 03分阶段创建唯一约束
- 04安全添加并验证外键
- 05分步骤修改列类型
- 06避免冗余或过宽索引
适用场景
- 01审查 Alembic 模式迁移
- 02添加索引或数据库约束
- 03降低修改列类型时的锁风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wispbit-ai/ skills --skill sqlalchemy-alembic-expert-best-practices-code-review安装后在 Claude Code 中输入/sqlalchemy-alembic-expert-best-practices-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/change-column-type.mdensure-index-not-covered.mdlimit-non-unique-index.mdonly-concurrent-indexes.mdsplit-check-constraint.mdsplit-foreign-key.mdunique-constraint.mdverify-query-patterns-are-indexed.md详细介绍
SQLAlchemy 和 Alembic 专家最佳实践
简单、务实、观点鲜明。只关注编写生产级 SQLAlchemy 和 Alembic 代码的关键要点。
何时应用
在以下情况下参考这些指南:
- 为架构变更编写 Alembic 迁移
- 创建或修改 SQLAlchemy 模型
- 通过 Alembic 添加索引、约束或外键
- 安全性审查数据库迁移代码
- 重构现有数据库架构
- 优化查询模式或数据库性能
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 索引管理 | 严重-高 | only-concurrent-indexes、verify-query-patterns-are-indexed |
| 2 | 约束安全性 | 高 | unique-constraint、split-foreign-key、change-column-type |
| 3 | 优化 | 中 | split-check-constraint、limit-non-unique-index |
| 4 | 索引效率 | 低 | ensure-index-not-covered |
快速参考
only-concurrent-indexes- 索引操作始终使用带有自动提交块的postgresql_concurrently=Trueverify-query-patterns-are-indexed- 确保 SQLAlchemy 查询定义了适当的索引unique-constraint- 将唯一约束的创建拆分为并发索引和约束两个步骤split-foreign-key- 先使用NOT VALID添加外键,再单独进行验证change-column-type- 使用多步方法更改列类型,避免锁定表split-check-constraint- 先使用NOT VALID添加检查约束,再单独进行验证limit-non-unique-index- 为保证效率,将非唯一索引限制为最多三列ensure-index-not-covered- 避免创建已被复合索引涵盖的冗余索引
如何使用
阅读各个规则文件,了解详细说明和代码示例:
rules/only-concurrent-indexes.md
rules/verify-query-patterns-are-indexed.md
rules/unique-constraint.md
rules/split-foreign-key.md
rules/change-column-type.md
rules/split-check-constraint.md
rules/limit-non-unique-index.md
rules/ensure-index-not-covered.md
每个规则文件都包含:
- 对规则重要性的简要说明
- 影响级别及描述
- 不正确的 SQLAlchemy/Alembic 示例及说明
- 遵循最佳实践的正确实现
- 安全迁移的其他背景信息
评论
支持 Markdown