apps/api gains Prisma (instance_settings as the first model) with the initial migration applied automatically at startup via prisma migrate deploy, a lazy-connecting PrismaService, and GET /api/v1/readyz reporting named checks (database reachable, migrations applied) with 200/503. DATABASE_URL joins the validated environment schema; MIGRATE_ON_START=false skips deploys for tests and tooling. An idempotent seed script and a Compose dev overlay with PostgreSQL (host port 5434 — 5433 is taken locally) complete the loop. Closes #3 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
15 lines
510 B
TypeScript
15 lines
510 B
TypeScript
import { Injectable, OnModuleDestroy } from '@nestjs/common';
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
/**
|
|
* PrismaClient as a Nest provider. Connections are opened lazily on first
|
|
* query (Prisma default), so the application can boot — and report an
|
|
* unready state via /readyz — while the database is still starting up.
|
|
*/
|
|
@Injectable()
|
|
export class PrismaService extends PrismaClient implements OnModuleDestroy {
|
|
async onModuleDestroy(): Promise<void> {
|
|
await this.$disconnect();
|
|
}
|
|
}
|