-
Notifications
You must be signed in to change notification settings - Fork 0
Prisma 설정
Jinho Kim edited this page Jun 19, 2023
·
2 revisions
npm install prisma --save-dev
npx prisma init
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
# 스키마 작성 예시
model User {
id Int @default(autoincrement()) @id
email String @unique
name String?
}
MYSQL_ROOT_PASSWORD="password"
MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL_DATABASE="database"
DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@localhost:3306/${MYSQL_DATABASE}"
version: '3.8'
services:
mariadb:
image: mariadb:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE
volumes:
- mariadb-data:/var/lib/mysql
ports:
- '3306:3306'
volumes:
mariadb-data:
npx prisma migrate dev --name init
npm install @prisma/client
import { INestApplication, Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit {
async onModuleInit() {
await this.$connect();
}
async enableShutdownHooks(app: INestApplication) {
this.$on('beforeExit', async () => {
await app.close();
});
}
}