Docker + postgreSQL을 함께 사용중이었는데, 계속 제공된 local DB 정보를 연결하면 IntelliJ에서 postgreSQL 연결시 'role does not exist'라는 에러가 발생하였다.
뭔가 현재 접속 계정이, 접근 권한이 없는건가?라는 생각이 들었다.
해결 방법은 다음과 같다.
0) package.json에서 start:db running(이 이름은 각 프로젝트마다 다를 수 있다)
1) local.env 파일에 접속 (관련해서 비슷한 이름이 있는 local db 환경변수 파일에 접속)
2) DB_USER 부분을, 나의 super 권한을 가진 계정 이름으로 입력하기
DB_HOST=localhost
DB_PORT=5432
DB_NAME=postgres
DB_USER=해당 db의 user 이름
DB_PASS=해당 db의 패스워드
3) IntelliJ에 Database에 postgreSQL DB 연결하면서 local.env 파일에 작성해뒀던 정보로 DB 연결
4) migration:local:run으로 실행
그러나, 왜 이렇게 연결했는가?
내가 clone 받은 프로젝트의 경우 Docker로 생성된 postgres DB였다. 그러나 곰곰히 생각해보니, 나는 docker로 postgres를 설치했던것이 아닌 + Mac Terminal에서 postgres를 설치했었기 때문에 docker에서 postgres 설정과 관련해서 계속 'role does not exist'라는 에러가 뜨며 postgres DB가 연결이 되지 않았던 것이다.
-> 그래서, 위의 과정을 실행하기 전에 Mac Terminal에서 다음과 같이 입력해보자.
psql postgres
\du
\du를 통해 권한 있는 user의 정보를 본다.
'Backend > PostgreSQL and TypeORM' 카테고리의 다른 글
Module '"nestjs-typeorm-paginate"' has no exported member 'IPaginationOptions'. (0) | 2023.08.17 |
---|---|
QueryBuilder 사용시 = 표현과 = : 표현의 차이점 (0) | 2023.08.17 |
Local DB 연결방법 (0) | 2023.07.03 |
SQL table 만들고 id 생성(PK) (0) | 2023.04.04 |
pgAdmin4 사용해보기 - postgreSQL Management Tool (1) | 2023.03.03 |