Prisma

 

part 2

Seungwoo Hong

2020.06.06

Contents

prisma schema

migrate

Prisma Schema

Prisma

 

prisma schema

Prisma의 설정파일로 Command 대부분 실행할 때 이 파일을 읽는다.

Prisma

 

Data source

prisma schema

A data source can be specified using a datasource block in the Prisma schema file.

Prisma

 

Components

prisma schema

  • Data source
  • Generators
  • Data model definition

Prisma

 

Data source

prisma schema

Prisma

 

Data source - url

prisma schema

Prisma

 

Data source - url

prisma schema

Prisma

 

Data source - url

prisma schema

Prisma

 

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.

Prisma

 

generator

prisma schema

Prisma

 

generator

prisma schema

Prisma

 

generator

prisma schema

binaryTargets는 리스트를 할당 받고 native는 OS를 자동으로 지정해준다.

Prisma

 

model definition

prisma schema

모델정의는 크게 Model 블록과 Enum블록으로 이루어진다.

Prisma

 

model definition

prisma schema

Prisma

 

model definition - scalar types

prisma schema

Scalar types

Prisma

 

model definition - enum

prisma schema

enum 블록을 지원하여 정의할 수 있으며, 하나의 타입처럼 사용될 수 있다.

Prisma

 

model definition - enum

prisma schema

enum 블록을 지원하여 정의할 수 있으며, 하나의 타입처럼 사용될 수 있다.

Prisma

 

model definition - enum

prisma schema

Prisma

 

model definition - enum

prisma schema

Prisma

 

model definition - Naming models

prisma schema

[A-Za-z][A-Za-z0-9_]*

앞 글자는 영 대소문자가 오게 되고 뒤에는 영어,숫자,_가 올 수 있다.

Prisma

 

model definition - Attributes

prisma schema

Prisma

 

model definition - Attributes

prisma schema

@id, @@id, @unique, @@unique의 차이는 멀티 필드냐, 단일 필터냐 차이다.

Prisma

 

model definition - function

prisma schema

@default 에 값으로 전달 되는 함수

스칼라 타입별로 함수가 다르다.

ex) Int - autoincrement(), DateTime - now()

Prisma migrate

Prisma

 

prisma migrate

테이블을 생성하거나 수정할 때 PSL prisma migrate 커멘드를 이용할 수 있다.

Prisma

 

prisma migrate

prisma migrate save --experimental

schema의 변경점 저장하는 명령어이다.

prisma/migrations 폴더를 와 디비에 _Migration 테이블을 만든다.

Prisma

 

prisma migrate

prisma migrate up --experimental

schema의 변경점을 디비에 반영하여 명령어이다.

Prisma

 

prisma migrate

prisma/migrations

변경점 히스토리가 생긴다. save 할 때마다 현재시간을 폴더 네임으로 하여 새로운 하위 폴더가 생긴다. 그 폴더에는 schema 파일과 변경된 정보가 들어간다.

Prisma

 

prisma migrate

workflow

1. prisma.schema 파일 수정

2. migrate save 실행 (변경점 저장)

3. migrate up 실행 (실행디비에 변경점 반영)

4. prisma generate 실행 (prisma/client에 반영)

 

Prisma

 

prisma migrate

workflow

Prisma

 

prisma migrate

아쉬운 점

1. migrations 폴더와 DB가 동기화 되지않는 경우가 발생한다.

2. migration과 introspect를 번갈아 가며 실행 할 때 스키마 파일이 변경된다. ex) enum 이름, 블록순서

Q&A

Prisma - part2

By Seungwoo Hong

Prisma - part2

Modern Database access - part2

  • 442