SuperAPI AI 工具集

database-patterns

数据与分析

查看项目

更新于 10-15 09:22

技能介绍

Database Patterns 是一个数据库设计与迁移模式技能,来源为 yonatangross/orchestkit。它提供数据库迁移、模式设计与版本管理的综合模式,每个类别在 rules/ 目录下有按需加载的独立规则文件。该技能被明确定位为 Alembic 和 PostgreSQL 的封装,而不是其文档的替代品;使用前应先阅读 references/ork-delta.md,其中包含上游文档未涵盖的版本下限、修正和内部约定。

用途与定位 该技能面向需要管理数据库模式演进、迁移和版本控制的开发场景,尤其适用于使用 SQLAlchemy 2.0 异步应用与 Alembic 的项目。它把可复用的规则、决策建议和反模式集中起来,帮助在创建迁移、设计模式、选择数据库时遵循一致做法。

主要能力(按类别)

  1. Alembic 迁移(2 条规则,影响级别 CRITICAL):数据迁移与分支管理。规则文件包括 rules/alembic-data-migration.md(批量回填、两阶段 NOT NULL、零停机)和 rules/alembic-branching.md(功能分支、合并迁移、冲突解决)。自动生成设置属于上游内容;对 Alembic 异步 env.py 模板的一处偏离(in_greenlet() 守卫)记录在 references/ork-delta.md。
  2. 模式设计(3 条规则,影响级别 HIGH):规范化、索引策略、NoSQL 模式。规则文件包括 rules/schema-normalization.md(1NF-3NF、何时反规范化、JSON 与规范化对比)、rules/schema-indexing.md(B-tree、GIN、HNSW、部分/覆盖索引)、rules/schema-nosql.md(嵌入与引用、文档设计、分片)。
  3. 版本管理(2 条规则,影响级别 HIGH):变更日志与漂移检测。规则文件包括 rules/versioning-changelog.md(模式版本表、语义化版本、审计追踪)和 rules/versioning-drift.md(环境同步、校验和验证、迁移锁)。回滚测试位于 references/migration-testing.md;有损降级的 docstring 约定位于 references/ork-delta.md。
  4. 零停机迁移(2 条规则,影响级别 CRITICAL):expand-contract 与回滚监控。规则文件包括 rules/migration-zero-downtime.md(扩展阶段、回填、收缩阶段、pgroll 自动化)和 rules/migration-rollback.md(pgroll 回滚、锁监控、复制延迟、回填进度)。
  5. 数据库选型(1 条规则,影响级别 HIGH):rules/db-selection.md,包含 PostgreSQL 优先、分层矩阵、反模式。默认推荐 PostgreSQL。

使用方式 技能提供快速参考表,列出各类别规则数量、影响级别与适用时机。快速开始示例展示了 Alembic 自动生成迁移的 upgrade/downgrade 写法,以及使用 uuidv7() 作为主键默认值、为外键建立索引的模式示例。技能还提供 scripts/ 目录,包含迁移模板和模型变更检测器。

关键决策建议

  • 异步方言:postgresql+asyncpg,为 SQLAlchemy 2.0 提供原生异步支持。
  • NOT NULL 列:两阶段处理,先可空再修改,避免锁表并保持向后兼容。
  • 大表索引:使用 CREATE INDEX CONCURRENTLY,实现零停机、不锁表。
  • 规范化目标:OLTP 使用 3NF,在减少冗余的同时保持查询性能。
  • 主键策略:分布式用 UUID,单库用 INT,按上下文选择。
  • 软删除:使用 deleted_at 时间戳列,保留审计追踪并支持恢复。
  • 迁移粒度:每个文件一个逻辑变更,便于回滚和调试。
  • 生产部署:生成 SQL、审查后再应用,绝不在生产自动运行。

反模式(禁止) 资料明确列出若干禁止做法:不得在没有默认值或两阶段方案时添加 NOT NULL 列(会锁表);不得在大表上使用阻塞式索引创建;不得跳过 downgrade 实现;不得在部署后修改迁移,应新建迁移;不得在生产自动运行迁移,应使用 alembic upgrade head --sql > review.sql 审查;不得在事务内运行 CONCURRENTLY;不得删除迁移历史;不得跳过环境(应始终 local -> CI -> staging -> production)。

上游覆盖范围 技能明确列出属于供应商文档、不应在此重述的主题,并给出第一方来源链接,包括 Alembic 自动生成与异步 env.py 模板、迁移分支与合并修订、多数据库 env.py 与批量回填配方、JSONB 操作符与索引、完整索引类型参考、迁移期间的 lock_timeout/statement_timeout/advisory locks、枚举类型变更、表分区、触发器函数、外键级联语义、时态与审计表、HNSW 与向量索引调优、通用部署前检查清单等。异步 SQLAlchemy 会话、FastAPI 接线、连接池调优属于 ork:python-backend 技能。

详细文档资源 references/ork-delta.md(修正与内部约定,应首先阅读)、references/migration-testing.md(升级/降级循环与数据完整性测试工具)、references/postgres-vs-mongodb.md(PostgreSQL 优先默认背后的对比)、references/db-migration-paths.md(跨引擎迁移风险矩阵)、references/cost-comparison.md(托管数据库成本分析)、references/storage-and-cms.md(对象存储与 CMS 选型)、scripts/(迁移模板、模型变更检测器)。

相关技能 sqlalchemy-2-async(异步 SQLAlchemy 会话模式)、ork:testing-integration(含迁移测试的集成测试模式)、caching(补充数据库性能的缓存层设计)、ork:performance(性能优化模式)。

限制 该技能是 Alembic 与 PostgreSQL 的封装补充,不替代官方文档;具体版本下限、修正与内部约定需查阅 references/ork-delta.md。资料未提供收费、价格、平台支持范围或具体效果数据。