Prisma는 Node.js, TypeScript 및 GraphQL을 사용하여 데이터베이스를 다루는 도구입니다.
Prisma를 사용하면 데이터베이스의 스키마를 프로그래밍적으로 정의할 수 있습니다. Prisma는 이 스키마를 사용하여 데이터베이스에 대한 타입 안전한 쿼리를 생성합니다. 이 쿼리는 데이터베이스와의 상호작용을 쉽게 만들어주며, 유지보수 및 개선이 용이합니다.
즉 SQL 코드를 작성할 필요 없이 자바스크립트 코드를 작성하면 Prisma가 데이터베이스와 대신 소통해줍니다.
// Prisma CLI 설치
npm install prisma -D
npx prisma init
명령어 실행 시 prisma 폴더와 .env 파일이 생성된다.
prisma 폴더 안에 있는 schema.prisma는 .env 파일을 읽고, 해당 파일의 DATABASE_URL을 가져온다.
DATABASE_URL에는 사용자명, 비밀번호, 데이터베이스의 호스트, 포트, 이름 등의 정보가 있기에 보안이 지켜져야 하므로 .gitignore 파일에 포함된다.
PostgreSQL은 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나로, 오픈 소스이며 무료로 사용할 수 있습니다. PostgreSQL은 SQL 표준을 따르고 있으며, 복잡한 쿼리와 트랜잭션을 처리할 수 있습니다. PostgreSQL은 다양한 운영체제, 언어 및 프레임워크에서 사용할 수 있습니다.
Window 사용자의 경우, 여기서 PostgreSQL 서버와 pgAdmin까지 패키지로 다운 가능합니다.
Servers - [Server] - Databases - 우클릭 - Create - Database
데이터베이스의 이름, Owner 지정(이후에 우클릭 - Properties 통해 데이터베이스의 Owner 확인할 수 있다)
다시 .env 파일로 돌아와서
DATABASE_URL="postgresql://user:randompassword@localhost:5432/mydb?schema=public"
user는 데이터베이스 Owner로, mydb는 데이터베이스 이름으로 수정한다.
localhost에서 작업할 때 PostgreSQL은 비밀번호 없이도 연결할 수 있도록 지원해주므로 randompassword는 바꿀 필요 없다.
pgAdmin4의 Login/Group Roles - [데이터베이스의 Owner] - 우클릭 - Properties - Definition - Password 설정 - Save
DATABASE_URL="postgresql://user:randompassword@localhost:5432/mydb?schema=public"
중 randompassword를 설정한 Password로 변경해준다.
[Server] - 우클릭 - Properties - Connection - Port
에서 포트 넘버를 확인해준다.
DATABASE_URL="postgresql://user:randompassword@localhost:5432/mydb?schema=public"
5432가 아닐 시, url의 5432 부분을 변경해준다.