关于 drizzle-database
一项用于实现和审查 Drizzle ORM 架构、查询及迁移的技能,帮助开发者遵循项目现有约定,并通过迁移与相关测试验证更改。
主要功能
- 01沿用现有架构与查询模式
- 02明确建模关系及连接要求
- 03指导验证迁移结果
- 04测试变更涉及的数据库路径
适用场景
- 01新增或修改 Drizzle 表与关系
- 02组合类型安全的 Drizzle 查询
- 03更新迁移并测试数据库变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ blogic-cz/ blogic-marketplace --skill drizzle-database安装后在 Claude Code 中输入/drizzle-database确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/migrations-and-testing.mdquery-patterns.mdschema-patterns.md详细介绍
Drizzle 数据库模式
使用此技能实现和审查 Drizzle ORM 架构与查询代码,确保类型、关系建模以及迁移和测试验证符合项目规范。
适用场景
当工作明确涉及 Drizzle ORM 原语时,请使用此技能,例如:
pgTable(...)架构定义- 使用
relations(...)声明关系 - Drizzle select/查询构建器组合(
db.select、db.query.*) - Drizzle 迁移和架构演进
- 为 Drizzle 支持的测试进行类型化测试数据库数据填充
对于与 Drizzle 实现无关的一般 SQL/数据库讨论,请勿触发此技能。
标准工作流
对每项架构/查询变更都按以下顺序执行:
- 检查目标代码库中附近的架构辅助函数和现有 Drizzle 模式。
- 采用已确立的本地模式(类型、命名、索引、关系风格),而不是自行创造新风格。
- 实现所需的最小架构/查询变更。
- 确认生成/应用的迁移输出与变更一致。
- 运行相关测试,验证变更涉及的表/查询路径。
请阅读以下文件中的完整示例:
references/schema-patterns.mdreferences/query-patterns.mdreferences/migrations-and-testing.md
约定和规则
始终遵守的规则
- 明确指定关系基数(
one或many),并确保外键字段与引用的 ID 匹配。 - 明确指定连接是可选还是必需(可选时使用
leftJoin,必需时使用innerJoin)。 - 架构变更后,先验证迁移和测试,再将任务视为完成。
项目约定(除非本地代码库采用其他已确立模式,否则请遵守)
- 如果项目使用带品牌/类型的 ID,优先在列上使用它们。
id: text("id").primaryKey().$type<UserId>();
- 如果现有表采用此风格,优先使用
.$defaultFn(...)生成 ID/时间戳。
createdAt: timestamp("created_at")
.$defaultFn(() => new Date())
.notNull();
- 如果本地架构文件采用这种方式,请将索引/复合约束放在
pgTable的第三个参数中。
(table) => [
index("sessions_user_id_idx").on(table.userId),
unique().on(table.userId, table.organizationId),
];
- 如果代码库依赖关系查询辅助函数,请将完整架构传入
drizzle(...)。
查询策略指导
如果组合单个查询(连接/选择投影)能减少往返次数并保持逻辑清晰,请优先采用。
如果关系查询辅助函数(使用 with 的 db.query.<table>.findMany/findFirst)能清晰表达读取操作、保持类型简洁并避免不必要的查询复杂度,请使用这些辅助函数。
如果关系查询辅助函数无法高效地实现所需的筛选、投影或聚合,请改用自定义连接/聚合查询。
范围边界
此技能专注于 Drizzle 架构/查询/迁移实现模式。
如果任务主要是调查性能问题,请将更广泛的数据库性能排查和生产环境索引策略交由 process-db-report 或 performance-optimization 处理。
资源
仅在需要时加载详细示例:
references/schema-patterns.md- 完整的表、关系、类型和索引示例references/query-patterns.md- 完整的查询、连接、聚合和变更示例references/migrations-and-testing.md- 迁移工作流以及测试/数据填充示例
评论
支持 Markdown