간단히 Prisma는 데이터베이스가 필요한 상태에서 react, apollo, graphql 등 다른 프레임워크들과 함께 빠르게 빌드를 하도록 도와주는 ORM이다.
ORM에 대해 잘 정리해주신 글
https://gmlwjd9405.github.io/2019/02/01/orm.html
ORM에 대해 조금 알아보면..
ORM (Object Relational Mapping, 객체-관계 매핑)
객체와 관계형데이터베이스 간의 불일치를 해결해주는 수단인데, 프로젝트의 복잡성이 커질 경우에는 사용하기가 어렵다. 하지만 당장 베타서비스를 제공하기 위해 빠르게 빌드를 해야한다면 고려해보자.
(windows10 으로 진행합니다.)
Prisma 공식홈페이지 첫화면의 명령어를 입력하자.
📌 npm install prisma -D
📌 npx prisma init
그러면 우리의 디렉토리 안에 prisma - schema.prisma
와 .env
파일이 생기는데,
📌 .env
파일은 필히 .gitignore
에 넣어두자(매우 중요)
prisma - schema.prisma
를 보면 Prisma는 기본적으로 Postgresql을 지원하는데, 설치되지않았다면 설치하도록 하자.
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
pgadmin4 server could not be contacted
에러가 났기 때문인데 따로 설치하면 에러가 나지 않았음.C:\Program Files\PostgreSQL\13\bin
폴더위치를 디폴트값으로 설치했다면 위와 같은 경로(13은 버전명이므로 달라질 수 있음)를
Path
인 곳을 클릭 → 새로만들기 버튼을 누르고 붙여넣는다.> postgres --version
postgres (PostgreSQL) 13.3
pgAdmin4는 데이터관리를 도와주는 GUI이다.
CREATE, DROP 등의 명령어를 사용하지 않고도 데이터베이스를 관리하기 편함.
설치 후 접속할 때의 비밀번호는 postgresql을 설치할 때 설정했던 비밀번호다.
(mySQL을 사용해봤다면 postgresql이 친숙하게 느껴질지도...?)
SQL shell(psql) 로 접속해서 \du
를 입력하면 유저이름들이 나오는데 postgres
는 슈퍼유저이므로 프로젝트에 사용할 새로운 유저를 만들어주도록 하자.
유저생성
postgres=# CREATE USER 유저이름 WITH PASSWORD '패스워드';
권한주기
이렇게 만든 유저는 아무런 권한도 가지고 있지 않다.
일단 DB생성 및 복제의 권한을 주도록 하자.
(pgAdmin4 의 Login/Group Roles
를 통해 명령어없이 추가적인 권한을 줄 수도 있으니 나중에 써먹자.)
postgres=# ALTER ROLE 유저이름 CREATEDB REPLICATION;
이제 shell을 종료 후 다시 실행해서 새로 생성한 USER로 접속을 하자.
CREATE DATABASE 데이터베이스이름;
명령어로 데이터베이스를 생성 후
pgAdmin4을 실행하고 슈퍼유저의 패스워드로 접속을 하면 '2'에서 만든 데이터베이스가 있는 것을 확인할 수 있고 properties의 owner가 새로 생성한 유저인 것을 확인할 수 있다.
📌 다시 .env
파일로 돌아와서, DATABASE_URL = ...
부분을
DATABASE_URL="postgresql://유저이름:유저패스워드@localhost:5432/데이터베이스이름?schema=public"
로 바꿔준다.