[prisma-client] prisma 생성

seokki kwon·2022년 9월 4일
0

prisma

목록 보기
1/1

설치

prisma cli

npm install prisma --save-dev

개발종속성으로 설치

npx prisma init --datasource-provider sqlite

prisma-cli 명령어로 prisma 디렉토리 생성

//schema.prisma

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
  posts Post[]
}

model Post {
  id        Int     @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  author    User    @relation(fields: [authorId], references: [id])
  authorId  Int
}

스키마 파일에서 db 연결설정 및 모델링
schema.prisma 의 역할

  • 기본 데이터베이스의 테이블을 나타냅니다.
  • 생성된 Prisma Client API의 기반 역할

마이그레이션

npx prisma migrate dev --name init

prisma/migrations디렉터리 에 이 마이그레이션에 대한 새 SQL 마이그레이션 파일을 만듭니다 .
데이터베이스에 대해 SQL 마이그레이션 파일을 실행합니다.

디비연결 과 모델설정을 해두고
해당 명령어를 입력하면 설정해둔 모델대로 .sql 파일이 만들어진다

쿼리보내기

async function main() {
  // ... you will write your Prisma Client queries here
  const user = await prisma.user.create({
    data : {
        name: 'test',
        email: 'test1234@prisma.io'
    }
  });
  console.log(user);
}

중첩데이터 검색

 async function main() {
    const usersWithPosts = await prisma.user.findMany({
      include: {
        posts: true,
      },
    })
    console.dir(usersWithPosts, { depth: null })
  }

기본적으로 findmany api 는 스칼라타입 데이터만 반환함
include를 설정을 따로 해줘야 객체,배열 을 반환함

prisma studio

npx prisma studio

데이터 테이블을 gui로 볼수가 있음

테이블 추가

// schema.prisma
model Product {
  id Int @id @default(autoincrement())
  price Int 
  title String
}

모델정의

npx prisma migrate dev --name init

마이그레이션

  async function main() {
   const products = await prisma.product.findMany();
    console.log(products)
  }

데이터검색

profile
웹 & 앱개발 기록

0개의 댓글