34 lines
872 B
TypeScript
34 lines
872 B
TypeScript
|
|
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'),
|
||
|
|
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()
|
||
|
|
// })
|
||
|
|
// }
|
||
|
|
}
|