Skillshub database-postgresql
Data access patterns, scaling, migrations, and ORM selection for PostgreSQL. (triggers: **/*.entity.ts, prisma/schema.prisma, **/migrations/*.sql, TypeOrmModule, PrismaService, PostgresModule)
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/database-postgresql" ~/.claude/skills/comeonoliver-skillshub-database-postgresql && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/database-postgresql/SKILL.mdsource content
PostgreSQL Database Standards
Priority: P0 (FOUNDATIONAL)
Integration patterns and ORM standards for PostgreSQL applications.
Patterns & Architecture
- Repository Pattern: Isolate database logic. Use
or@InjectRepository()
.PrismaService - Relationship Integrity: Avoid redundant raw ID columns. Favor relation properties.
Migrations (Strict Rules)
- NEVER use
in production.synchronize: true - Generation: Modify
-> run.entity.ts
.pnpm migration:generate - Zero-Downtime: Use Expand-Contract pattern (Add -> Backfill -> Drop) for destructive changes.
- RLS:
cannot detect Row-Level Security. Use rawtypeorm migration:generate
SQL for RLS.queryRunner.query()
Performance & Gotchas
- Pagination: Mandatory. Use limit/offset or cursor-based pagination.
- Indexing: Define indexes in code for frequently filtered columns. RLS columns MUST be indexed.
- Transactions: Use
orQueryRunner
for multi-step mutations.$transaction
Anti-Patterns
- No N+1 queries: Use query builders or eager-load relations instead of lazy-loading in loops.
- No heavy RLS joins: Keep RLS predicates simple; move complex logic to the query/view layer.
- No synchronize in production: Always run explicit migrations;
is destructive.synchronize: true