들어가기
apple-market에서는 DB를
PlanetScale, Prisma 두개로 구성한다!!
https://www.prisma.io/
https://www.prisma.io/docs/getting-started/quickstart
VSconde Extension 에서 Prisma 설치할것.(확장프로그램)
npm i prisma -D // npm i @prisma/client
npx prisma init(맨 처음 사용시)
3-1. .env 파일과 prisma폴더가 생성됨.
3-2. prisma폴더에는 schema.prisma 파일이 생성됨
PlanetScale에서는 mysql을 사용해야 해서 schema.prisma 파일의
datasource db{
provider = 'mysql' 로 바꾸어 준다. default는 postgres
model생성 예시!
shcema.prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["referentialIntegrity"]
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
referentialIntegrity = "prisma"
}
model User {
id Int @id @default(autoincrement())
phone Int? @unique
email String? @unique
name String
avatar String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
PlanetScale
https://planetscale.com/
window
$scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git
$scoop install pscale mysql
scoop 설치는 powershall에서 설치해야 함.
https://scoop.sh/
scoop설치가 이뤄지면 아래와 같이 나옴
pscale CLI가 정상적인 설치가 이뤄지면!
브라우저가 열리면 로그인됨.
:\Users\kjm>pscale region list
NAME (9) SLUG ENABLED
----------------------------------- -------------------- ---------
AWS us-east-1 (Northern Virginia) us-east Yes
AWS us-west-2 (Oregon) us-west Yes
AWS eu-west-1 (Dublin) eu-west Yes
AWS ap-south-1 (Mumbai) ap-south Yes
AWS ap-southeast-1 (Singapore) ap-southeast Yes
AWS ap-northeast-1 (Tokyo) ap-northeast Yes
AWS eu-central-1 (Frankfurt) eu-central Yes
AWS ap-southeast-2 (Sydney) aws-ap-southeast-2 Yes
AWS sa-east-1 (Sao Paulo) aws-sa-east-1 Yes
$pscale database create apple-market --region ap-northeast
->db생성 command
planetscale.com에서 아래와 같이 확인됨
apple-market이 생성된 것을 확인가능하다.
위에서 나온 DB주소를
.env에 입력하면 연결됨.
DATABASE_URL="mysql://127.0.0.1:10205/apple-market"
참고로 이 연결을 코딩하는 동안 계속 유지시켜주어야 함.
cmd창을 닫으면, DB와 연결이 끊어짐.
generator client {
provider = "prisma-client-js"
previewFeatures = ["referentialIntegrity"] ********
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
referentialIntegrity = "prisma" ********
}
db push를 한 이후에 Refresh schema를 클릭하면, 동기화 된 것을 확인가능
libs/clients.ts
import { PrismaClient } from '@prisma/client'
export default new PrismaClient()
그리고 $npx prisma generate
node_module에서 prisma생성된것 확인 가능함.
본격적인 사용은 다음 POST에서 다뤄보도록 함.