npx prisma migrate dev *P1001 에러 해결

김까치·2023년 5월 8일
0

배경 지식

Prisma

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

PostgreSQL은 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나로, 오픈 소스이며 무료로 사용할 수 있습니다. PostgreSQL은 SQL 표준을 따르고 있으며, 복잡한 쿼리와 트랜잭션을 처리할 수 있습니다. PostgreSQL은 다양한 운영체제, 언어 및 프레임워크에서 사용할 수 있습니다.

Window 사용자의 경우, 여기서 PostgreSQL 서버와 pgAdmin까지 패키지로 다운 가능합니다.

pgAdmin4

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는 바꿀 필요 없다.


오류 해결

.env 파일의 DATABASE_URL에 비밀번호 세팅

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 부분을 변경해준다.

profile
개발자 연습생

0개의 댓글