- Debian-based api image (bookworm-slim), docker/debian mirrors, prisma binaryTargets for openssl 3.0 - nginx: admin SPA under /admin, TLS via acme.sh (ZeroSSL) + auto-renewal cron, http->https redirect - prisma: add origin_goods.delisted migration, sync missing schema (good_image/tag_font_color/good_tags), fix users.createdAt Timestamptz - api: CORS wildcard reflection, helmet CORP cross-origin, price backfill in persistProductDetail, categoryIcon ancestor fallback, mediaByColor per-color gallery in public goods detail - admin: /admin base path (vite + router) - import-data.mjs: udt_name casting, serial sequence advance fix
21 lines
611 B
TypeScript
21 lines
611 B
TypeScript
import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
/**
|
|
* Global Prisma client wrapper.
|
|
*
|
|
* - `onModuleInit`: connects to the database so the first request
|
|
* does not pay the connection cost.
|
|
* - `onModuleDestroy`: cleanly disconnects during shutdown.
|
|
*/
|
|
@Injectable()
|
|
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
|
|
async onModuleInit(): Promise<void> {
|
|
await this.$connect();
|
|
}
|
|
|
|
async onModuleDestroy(): Promise<void> {
|
|
await this.$disconnect();
|
|
}
|
|
}
|