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 의 역할
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를 설정을 따로 해줘야 객체,배열 을 반환함
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)
}
데이터검색