NE

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.zip

Installs 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)
283 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

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

You give it
NestJS application with database entities or schema changes
You get back
Implemented data access layers, generated migrations, or configured ORM

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.
  • Abstraction: Services should call Repositories, not raw SQL queries.

Configuration (TypeORM)

  • Async Loading: Always use TypeOrmModule.forRootAsync to load secrets from ConfigService.
  • Sync: Set synchronize: false in production; use migrations instead.

Migrations

  • Never use synchronize: true in production.
  • Generation: Whenever a TypeORM entity (.entity.ts) is modified, a migration MUST be generated using pnpm 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:run in 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:show to get the SQL or simply copy the up method's SQL into a management tool (like Supabase SQL Editor). Always track manual runs in the migrations metadata table.
  • 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

  1. Pagination: Mandatory. Use limit/offset or cursor-based pagination.
  2. Indexing: Define indexes in code (decorators/schema) for frequently filtered columns ( where, order by).
  3. 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: true drops 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.

SkillInstallsUpdatedSafetyDifficulty
nestjs-database (this skill)03moNo flagsIntermediate
database-migration32moNo flagsAdvanced
create-migration13moNo flagsBeginner
316-frameworks-spring-mongodb-migrations-mongock01moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry