关于 sqlalchemy-alembic-expert-best-practices-code-review
这是一组用于 SQLAlchemy 和 Alembic 开发与代码审查的实用指南,面向处理数据库架构变更、迁移和查询性能的开发者,重点说明安全的索引与约束操作。
主要功能
- 01安全编写 Alembic 迁移
- 02并发索引操作实践
- 03分阶段添加外键和检查约束
- 04分步修改列类型
- 05检查查询索引及冗余索引
适用场景
- 01审查迁移中的锁表风险
- 02以较低影响添加索引
- 03分阶段修改列类型
- 04核对查询模式与索引定义
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ midudev/ autoskills --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