用途:为项目提供 Drizzle ORM + PostgreSQL 数据库层,覆盖 schema 定义、关系、查询、变更、事务与迁移等数据库工作。
主要能力:包结构位于 packages/database/,包含 client.ts(Drizzle 客户端)、schema/(users、sessions、accounts、verifications 等表定义及 index.ts)与公共导出 index.ts,另有 drizzle.config.ts 和 package.json。客户端通过 drizzle-orm/node-postgres 创建,读取 process.env.DATABASE_URL,并设置 casing: 'snake_case' 自动转换 camelCase 与 snake_case。schema 使用 pgTable、text、timestamp、boolean 等定义字段,支持主键、非空、唯一、默认值与 $onUpdate;可用 $inferSelect / $inferInsert 推断类型。关系通过 relations 定义一对多与多对一。查询支持关系查询 db.query.*.findFirst/findMany(可 with 关联、where、orderBy、limit、offset)以及类 SQL 的 select/from/where。变更支持 insert/update/delete 并配合 .returning() 获取结果。事务使用 db.transaction(async (tx) => {...})。过滤操作符包括 eq、ne、gt、gte、lt、lte、like、ilike、inArray、isNull、and、or。分页通过 limit 与 offset 实现。
使用方式:按上述结构组织代码,在 drizzle.config.ts 中配置,客户端设置 casing: 'snake_case',变更时使用 .returning(),相关写入放入事务,UUID 使用 crypto.randomUUID(),外键按需加索引,findFirst 结果需判空。
适用场景:需要类型安全地访问 PostgreSQL 的 Node/TypeScript 项目,尤其是使用该 SaaS 套件数据库包的应用。
限制:资料未提供安装命令、版本要求、迁移具体命令、性能数据与收费信息;高级模式、迁移与查询示例需查看 reference.md。服务端函数、认证表与代码审查分别参见 tanstack-start、auth 技能与 code-reviewer 代理。