nestjs-database
Provides standards for database integration, repository patterns, and migration management in NestJS applications.
Install
mkdir -p .claude/skills/nestjs-database && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17932" && unzip -o skill.zip -d .claude/skills/nestjs-database && rm skill.zipInstalls to .claude/skills/nestjs-database
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Implement data access patterns, Scaling, Migrations, and ORM selection in NestJS. Use when implementing TypeORM/Prisma repositories, migrations, or database patterns in NestJS. (triggers: **/*.entity.ts, prisma/schema.prisma, TypeOrmModule, PrismaService, MongooseModule, Repository)Key capabilities
- →Implement the Repository Pattern for data access
- →Configure TypeORM with asynchronous loading
- →Generate and audit database migrations
- →Apply zero-downtime migration strategies
- →Enforce pagination and indexing best practices
How it works
This skill provides standards for integrating databases in NestJS applications, focusing on the Repository Pattern, TypeORM configuration, and safe migration practices.
Inputs & outputs
When to use nestjs-database
- →Generate migrations after modifying TypeORM entity files
- →Set up a PrismaService for dependency injection
- →Refactor services to use repositories instead of raw SQL queries
- →Configure asynchronous database connections using ConfigService
About this skill
NestJS Database Standards
Priority: P0 (FOUNDATIONAL)
Database integration patterns and ORM standards for NestJS applications.
Selection Strategy
See references/persistence_strategy.md for database selection matrix and scaling patterns (Connection Pooling, Sharding).
Patterns
- Repository Pattern: Isolate database logic.
- TypeORM: Inject
@InjectRepository(Entity). - Prisma: Create a comprehensive
PrismaService.
- TypeORM: Inject
- Abstraction: Services should call Repositories, not raw SQL queries.
Configuration (TypeORM)
- Async Loading: Always use
TypeOrmModule.forRootAsyncto load secrets fromConfigService. - Sync: Set
synchronize: falsein production; use migrations instead.
Migrations
- Never use
synchronize: truein production. - Generation: Whenever a TypeORM entity (
.entity.ts) is modified, a migration MUST be generated usingpnpm migration:generate. - Audit: Always inspect the generated migration file to ensure it matches the entity changes before applying.
- Production Strategies:
- CI/CD Integration (Recommended): Run
pnpm migration:runin a pre-deploy or post-deploy job (e.g., GitHub Actions, GitLab CI). Ensure the production environment variables are correctly set. - Manual SQL (For restricted DB access): Use
typeorm migration:showto get the SQL or simply copy theupmethod's SQL into a management tool (like Supabase SQL Editor). Always track manual runs in themigrationsmetadata table.
- CI/CD Integration (Recommended): Run
- Zero-Downtime: Use Expand-Contract pattern (Add -> Backfill -> Drop) for destructive changes.
- Seeding: Use factories for dev data; only static dicts for prod.
Best Practices
- Pagination: Mandatory. Use limit/offset or cursor-based pagination.
- Indexing: Define indexes in code (decorators/schema) for frequently filtered columns (
where,order by). - Transactions: Use
QueryRunner(TypeORM) or$transaction(Prisma) for all multi-step mutations to ensure atomicity.
Anti-Patterns
- No synchronize in production: Use explicit migrations;
synchronize: truedrops and recreates columns. - No raw entity returns from services: Map to DTOs before leaving the service layer.
- No unpaginated list queries: All list endpoints must implement limit/offset or cursor pagination.
When not to use it
- →When `synchronize: true` is desired in production
- →When raw entity returns from services are acceptable
- →When unpaginated list queries are allowed
Limitations
- →Requires manual inspection of generated migration files
- →Enforces specific ORM patterns (TypeORM, Prisma, Mongoose)
- →Mandates asynchronous loading for TypeORM secrets
How it compares
This skill establishes specific patterns and rules for database integration and migration within NestJS, providing a standardized approach compared to ad-hoc database management.
Compared to similar skills
nestjs-database side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| nestjs-database (this skill) | 0 | 3mo | No flags | Intermediate |
| database-migration | 3 | 2mo | No flags | Advanced |
| create-migration | 1 | 3mo | No flags | Beginner |
| 316-frameworks-spring-mongodb-migrations-mongock | 0 | 1mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by li-lance
View all by li-lance →You might also like
database-migration
wshobson
Execute database migrations across ORMs and platforms with zero-downtime strategies, data transformation, and rollback procedures. Use when migrating databases, changing schemas, performing data transformations, or implementing zero-downtime deployment strategies.
create-migration
owid
Create a new database migration file for the OWID MySQL database. Use when the user needs to create a database schema change or migration.
316-frameworks-spring-mongodb-migrations-mongock
jabrena
Use when you need to add or review Mongock MongoDB data migrations in a Spring Boot application — including Maven coordinates, Spring Data MongoDB drivers, migration scan packages, @ChangeUnit classes, lock/transaction settings, and Testcontainers verification. This should trigger for requests such
alwib-backend
Tsuev
Develop and maintain the Alwib NestJS backend in `backend/`. Use when implementing or refactoring modules, controllers, services, DTO validation, Swagger docs, authentication/authorization flows, Prisma schema and migrations, and backend lint/test flows.
prisma-v7
develsvai
`web/`의 Prisma 7 설정과 generated client import 규칙을 맞추기 위한 스킬이다. 스키마 변경, migration, import 패턴 정리, Prisma 타입 사용 시 적용한다.
lucid
lncitador
>