스터디/React
[prisma] next 프레임워크에 prisma 연동해보기 (풀쿼리)
_leezoee_
2022. 5. 19. 11:50
나는 그냥 단순히 select * from user 조인 user level 을 하고 싶었는데 구글 예제들은 다들 prisma 모델을 사용 한 것들만 나와서 쪼금 삽질 한 결과 prisma에 $queryRaw를 사용하면 풀쿼리를 날릴수 있음을 알게되었다!
(지금 라이브러리를 prisma 쓸지 serverless-mysql 쓸지 고민햇는데 나중에 디비 mysql 안 쓸 경우도 봐야하니까 prisma로 선택 :D)
도움이 된 블로그 글을 먼저 소개
https://velog.io/@iamhayoung/prisma-schema
Prisma & MySQL 시작하기
Node.js, TypeScript용 ORM인 Prisma를 MySQL과 함께 도입해봅니다🤓
velog.io
1. prisma 다운로드
npm i prisma dotenv -D
npm i @prisma/client
npx prisma init
vsc에 cmd로 설치 하다가 몇몇 에러가 났는데 친절하게 뭐가 문제인지 주절주절 소개해줘서 에러 읽으면 고칠수 있음.
2. 필요한 config 설정해주기
.env 파일과 prisma/schema.prisma 가 자동으로 생성됨.
env 파일에서는 DATABASE_URL을 설정하고, schema.prisma에서는 말그대로 스키마에 대한 설정을 해줌, 기본 db config랑 VO 같은거
3. 페이지에서 db 가져다 써보기
//pages>index.js
import { PrismaClient } from '@prisma/client'
export default function Home() {
return (
//...소스중략
)
}
const prisma = new PrismaClient();
export async function getStaticProps() {
const posts = await prisma.$queryRaw
`SELECT A.*, B.* FROM user_table as A
inner join user_level_table as B on A.user_level=B.sid`
console.log(posts);
return {
props : { posts }
}
}
끝!
prisma에서 제공하는 메소드들을 사용하는법은 좀 더 스터디가 필요할 거 같으니
다음에 기회되면 포스팅 할 계획
