Seungwoo Hong
Front-end developer
part 2
Seungwoo Hong
2020.06.06
prisma schema
migrate
prisma schema
Prisma의 설정파일로 Command 대부분 실행할 때 이 파일을 읽는다.
Data source
prisma schema
A data source can be specified using a datasource block in the Prisma schema file.
Components
prisma schema
Data source
prisma schema
Data source - url
prisma schema
Data source - url
prisma schema
Data source - url
prisma schema
generator
prisma schema
A generator can be specified via the generator block in the Prisma schema. Generators in your Prisma schema specify what assets are generated when the prisma generate command is invoked.
generator
prisma schema
generator
prisma schema
generator
prisma schema
binaryTargets는 리스트를 할당 받고 native는 OS를 자동으로 지정해준다.
model definition
prisma schema
모델정의는 크게 Model 블록과 Enum블록으로 이루어진다.
model definition
prisma schema
model definition - scalar types
prisma schema
Scalar types
model definition - enum
prisma schema
enum 블록을 지원하여 정의할 수 있으며, 하나의 타입처럼 사용될 수 있다.
model definition - enum
prisma schema
enum 블록을 지원하여 정의할 수 있으며, 하나의 타입처럼 사용될 수 있다.
model definition - enum
prisma schema
model definition - enum
prisma schema
model definition - Naming models
prisma schema
[A-Za-z][A-Za-z0-9_]*
앞 글자는 영 대소문자가 오게 되고 뒤에는 영어,숫자,_가 올 수 있다.
model definition - Attributes
prisma schema
model definition - Attributes
prisma schema
@id, @@id, @unique, @@unique의 차이는 멀티 필드냐, 단일 필터냐 차이다.
model definition - function
prisma schema
@default 에 값으로 전달 되는 함수
스칼라 타입별로 함수가 다르다.
ex) Int - autoincrement(), DateTime - now()
prisma migrate
테이블을 생성하거나 수정할 때 PSL과 prisma migrate 커멘드를 이용할 수 있다.
prisma migrate
prisma migrate save --experimental
schema의 변경점 저장하는 명령어이다.
prisma/migrations 폴더를 와 디비에 _Migration 테이블을 만든다.
prisma migrate
prisma migrate up --experimental
schema의 변경점을 디비에 반영하여 명령어이다.
prisma migrate
prisma/migrations
변경점 히스토리가 생긴다. save 할 때마다 현재시간을 폴더 네임으로 하여 새로운 하위 폴더가 생긴다. 그 폴더에는 schema 파일과 변경된 정보가 들어간다.
prisma migrate
workflow
1. prisma.schema 파일 수정
2. migrate save 실행 (변경점 저장)
3. migrate up 실행 (실행디비에 변경점 반영)
4. prisma generate 실행 (prisma/client에 반영)
prisma migrate
workflow
prisma migrate
아쉬운 점
1. migrations 폴더와 DB가 동기화 되지않는 경우가 발생한다.
2. migration과 introspect를 번갈아 가며 실행 할 때 스키마 파일이 변경된다. ex) enum 이름, 블록순서
Q&A
By Seungwoo Hong
Modern Database access - part2