SuperAPI AI 工具集

nestjs-typeorm-integration

通用与其它

查看项目

更新于 10-16 01:09

技能介绍

用途:在 NestJS TypeScript 项目中规范地集成、配置或重构 TypeORM,让数据层干净、可扩展且贴近生产实践。

主要能力:

  1. 集成配置:安装 TypeORM 与数据库驱动,通过 TypeOrmModule 和 @nestjs/config 以环境变量驱动连接;建议非开发环境 synchronize: false,改用迁移。
  2. 实体设计:创建与重构实体及关系(如 @Entity、@ManyToOne),统一 ID 类型,合理设置 onDelete、eager、lazy,避免实体承载过重业务逻辑。
  3. 仓库注入:用 TypeOrmModule.forFeature 注册实体,通过 @InjectRepository 注入 Repository,服务依赖仓库而非手动实例化。
  4. 迁移:用 data-source.ts 配合 CLI,通过 migration:generate、migration:run、migration:revert 管理结构变更,迁移文件小而有序并纳入版本控制。
  5. 事务与复杂操作:使用 DataSource.transaction 或 QueryRunner 处理多步写入,按需使用而非默认包裹全部逻辑。
  6. 性能与查询:使用 select 与投影、避免 N+1、为高频查询列加索引、对大列表分页。
  7. 重构:识别手动建连、滥用 getRepository、生产开启同步等反模式,替换为模块化配置与注入式仓库。

使用方式:当用户提出在 NestJS 中接入 TypeORM、创建实体与迁移、接入仓库、修复配置或实现事务等需求时触发。默认假设数据库为 Postgres(可适配 MySQL、SQLite),连接经 TypeOrmModule、环境变量经 @nestjs/config 与 .env;实体通常位于 src/modules/<feature>/entities 或 src/entities,迁移位于 src/migrations 或 migrations,并尽量沿用既有目录结构。若存在 CLAUDE.md,则遵循其数据库选择、命名与目录约定。

适用场景:新建数据库层、实体与关系维护、迁移工作流、仓库接线、事务实现、查询与索引优化、既有 TypeORM 用法重构。

限制与边界:不用于通用 NestJS 模块/服务/控制器脚手架、认证逻辑、Supabase 专用流程(除非仅把 Supabase Postgres 当作普通数据库经 TypeORM 访问);也不用于仅涉及 REST 契约或纯内存逻辑的场景。具体安装命令、价格与平台支持等资料暂未提供。