반응형
Prisma
Modern Database Access for TypeScript & Node.js
> Typescript 와 Node.js 환경에서 데이터베이스에 대한 접근을 쉽게 하도록 도와주는 소프트웨어(오픈소스)
> 기존에 Node 환경에서 사용되던 다른 ORM(Object Relational Mapper)들을 대체
//Prisma 패키지 설치
npm install prisma --save-dev
npm install @prisma/client --save
//nodemon : 코드변경 서버에 바로 적용
//dotenv : 환경변수를 사용할 수 있게 해줌
npm install dotenv nodemon -D
> Prisma 시작
//명령어 확인
npm prisma
//prisma 초기세팅
npx prisma init
> DB연결
// prisma/schema.prisma
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
// .env (gitingnore에 추가)
DATABASE_URL = "mysql://USERNAME:PASSWORD@localhost:3306/DATABASE_NAME"
> prisma model 생성
코드로 데이터베이스를 생성 = '모델을 만든다'
모델링 예시 (user)
더보기
model articles {
id Int @id @default(autoincrement())
user_id Int
title String
body String
created_at DateTime? @default(now())
updated_at DateTime?
deleted_at DateTime?
users users @relation(fields: [user_id], references: [id])
comments comments[]
@@index([user_id], name: "user_id")
}
model comments {
id Int @id @default(autoincrement())
article_id Int
user_id Int
body String
created_at DateTime? @default(now())
updated_at DateTime?
deleted_at DateTime?
articles articles @relation(fields: [article_id], references: [id])
users users @relation(fields: [user_id], references: [id])
@@index([article_id], name: "article_id")
@@index([user_id], name: "user_id")
}
model users {
id Int @id @default(autoincrement())
email String @unique
password String
created_at DateTime? @default(now())
updated_at DateTime?
deleted_at DateTime?
articles articles[]
comments comments[]
}
> Migration
: 모델을 테이블로 변경 (=마이그레이션)
npx prisma migrate dev --name init
마이그레이션이 성공하면 prisma/migrations 디렉토리에 생성시각_init 이라는 이름의 마이그레이션 폴더가 생성
내부에는 데이터베이스에 직접 테이블을 생성해줄 migration.sql 파일 생성
반응형
'Archive' 카테고리의 다른 글
[VSC] Prettier 적용방법 (0) | 2021.10.16 |
---|---|
[DB] Prisma 기초 (0) | 2021.10.10 |
export / export default (0) | 2021.10.02 |
--save-dev ? (0) | 2021.09.25 |
package.json 과 package-lock.json 차이 (0) | 2021.09.23 |