Syntax highlight 같은 기능이 있어 prisma 파일을 좀 더 보기 좋게 만들어 준다.
formatting, auto-completion(자동 완성) 기능이 있다.
npm i prisma -D
터미널에서 -D(Developer Dependency)로 Prisma를 설치한다.
설치가 끝나면 Prisma를 불러와야 하는데, 불러오는 방법은
npx prisma
항상 prisma를 불러올 땐 npx prisma로 불러와야 한다.
npx prisma init
을 하게 되면 application 안에 prisma 폴더와 .env 파일이 생성된다.
주의
여기서 .env 파일을 .gitignore 파일에 추가하는 것을 잊지 말자.
➡ Prisma를 사용하려면 데이터베이스가 있어야 하고 Prisma는 번역기의 역할을 할 뿐이니, 데이터베이스가 필요하다.
.env 파일에 가 보면 postgreSQL DATABASE_URL이 있는데
postgreSQL 데이터베이스는 사용하지 않고, 컴퓨터 상에도 있지 않고 데이터베이스는 PlanetScale에 있을 것이기에 나중에 바꿔주어야 한다.
➡ provider는 우리가 사용할 데이터베이스라고 생각하면 된다.
Prisma는 provider, postgreSQL, MySQL, SQLite, SQLServer, MongoDB를 지원한다.
prisma 폴더의 schema.prisma 파일에 "postgresql" 을 "mysql"로 바꿔주면 끝.
schema.prisma는 데이터베이스에 대한 모든 설명을 담은 파일이라 굉장히 중요하다.
변경점을 데이터베이스에 push 할 때, client를 만들 때 사용하기 때문에 prisma는 이 파일을 굉장히 자주 찾는다.
id의 타입은 정수형의 Int, Prisma에게 id가 ID라는 것을 알려주기 위한 @id(유니크 식별자), 기본값의 @default, 자동으로 증가하는 (1,2,3,4, 이런식으로) @autoincrement()
뭔가 필수적이지 않은 선택적인 옵션으로 만들고 싶다면 물음표를 붙인다.
phone의 타입은 정수형의 Int, 전화번호 아니면 email로 로그인을 하기 때문에 ?를 붙인다. 유저에게 전화번호는 유일해야 하므로 @unique
email의 타입은 String, 전화번호와 마찬가지로 둘 중 하나로 로그인을 하기 때문에 ?를 붙인다. 유저에게 email은 유일해야 하므로 @unique
name은 required기 때문에 ?를 붙이지 않았다.
avatar는 이미지 파일의 URL을 넣어야 하기 때문에 String 타입, 로그인 시 필수적인 옵션이 아니기에 ?
유저가 언제 생성됐는지, 마지막으로 수정된 날짜가 언제인지 알려주는 createdAt는 DateTime 타입, 기본적으로 유저가 생성될 때 그 시점의 날짜를 가져오는 now() 함수를 넣어준다.
유저가 업데이트 된 시점을 저장하는 updatedAt은 DateTime 타입, 유저가 업데이트 될 때마다 이 필드가 변할 것이라고 Prisma에게 알려줄 @updatedAt
Ctrl + Shift + P에서 Open User Settings (json) 검색후 setting.json 파일에
"[prisma]": {
"editor.defaultFormatter": "Prisma.prisma"
}
를 추가하면 정렬이 되는 것을 확인할 수 있다.
근데도 되지 않는다면
"editor.formatOnSave": true
를 추가해보자.