2025-12-04 21:05:57 +03:30
|
|
|
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'
|
|
|
|
|
import { PrismaMariaDb } from '@prisma/adapter-mariadb'
|
|
|
|
|
import 'dotenv/config'
|
|
|
|
|
import { env } from 'prisma/config'
|
|
|
|
|
import { PrismaClient } from '../generated/prisma/client'
|
|
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
|
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
|
|
|
|
|
constructor() {
|
|
|
|
|
const adapter = new PrismaMariaDb({
|
|
|
|
|
host: env('DATABASE_HOST'),
|
|
|
|
|
user: env('DATABASE_USER'),
|
|
|
|
|
password: env('DATABASE_PASSWORD'),
|
|
|
|
|
database: env('DATABASE_NAME'),
|
2025-12-09 13:59:07 +03:30
|
|
|
port: env('DATABASE_PORT') ? Number(env('DATABASE_PORT')) : 3306,
|
2025-12-04 21:05:57 +03:30
|
|
|
connectionLimit: 5,
|
|
|
|
|
})
|
|
|
|
|
super({ adapter })
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async onModuleInit() {
|
|
|
|
|
await this.$connect()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async onModuleDestroy() {
|
|
|
|
|
await this.$disconnect()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// async enableShutdownHooks(app: any) {
|
|
|
|
|
// this.$on('beforeExit', async () => {
|
|
|
|
|
// await app.close()
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
}
|