본문 바로가기
TIL

PostgreSQL - TablePlus 연결하기 (23.03.23 TIL)

by winteringg 2023. 3. 23.

fly 로 배포했던 플모그래피 프로젝트 DB 안의 데이터를 다루기 위해서 GUI 툴이 필요한 시점이 왔다. 데이터들을 수동으로 하나 하나 밀어넣어주기 위해서이다. 다른 동료들은 Postico 를 이용했어서 나도 같은 걸로 해볼까 하다가 맨 아래에 첨부해둔 블로그를 참고하여 최종적으로는 좀 더 기능이 많은 TablePlus 를 이용해보기로 했다.

TablePlus 홈페이지에서 MacOS 용을 다운받아 설치하면 이런 로그인 창이 뜬다.

 

처음 PostgreSQL 을 만들 때 받았던 username, password, hostname, port 번호 등등이 필요하다.

이 정보들을 위 로그인창에 입력해주면 되는데, 이대로만 입력하면 "host not found" 라는 오류가 뜰 것이다. 이 오류를 해결하기 위해서는 (fly 로 배포한 케이스인 경우) 배포할 때 생성되는 fly.toml 파일을 DB 용으로 하나 더 만들고 그 안에 설정을 조금 건드려줘야한다.

아래부터 진행되는 프로세스는 Fly 에서 제공되는 공식문서를 참고했다.

1. 먼저 fly postgres connect -a <배포한 데이터베이스 app name> 을 터미널에 입력해서 db 와 잘 연결이 되는 지 확인 (안해도 됨) 후, 아래 사진처럼 접속이 잘 된다면 \q 로 빠져나온다.

2. fly ips list -a <배포한 데이터베이스 app name> 을 입력해서 IP addresses 부분에 설정된 ip 주소가 있는 지 확인해본다. 이건 사진처럼 fly dashboard 에서 확인해도 된다. 나의 경우 ip 주소를 이미 설정해놨기 때문에 보이는데, 원래 아무것도 없을 것이다.

3. ip 주소가 없다면 터미널에 fly ips allocate-v4 -a <배포한 데이터베이스 app name> 으로 ip 주소를 설정해준다. v6 는 굳이 설정하지 않아도 되므로 무시해도 된다.

4. ip 주소가 할당이 잘 되었는 지 확인하기 위해 터미널에 fly ips list -a <배포한 데이터베이스 app name> 를 입력해준다. 아래 사진처럼 나오면 잘 된 것!

5. **제일 중요** 한 부분인데, 이제 DB 를 위한 fly.toml 파일을 생성할 차례이다. fly 로 배포했을 때 생성한 fly.toml 은 무시하고 우리는 DB 용으로 하나 더 만들어야 한다. 프론트/백엔드가 위치하는 디렉토리에 db 용 폴더를 하나 더 만들어서 그 안에서 fly.toml 파일을 생성해줄 것이다. 만약 fly.toml 파일이 존재하는 디렉토리에서 아래 내용을 진행할 경우 기존에 파일에 덮어씌워지기 때문에 에러가 난다.

이걸 강조하는 이유는, db 용 fly.toml 이니까 백엔드에 있는 spring 폴더 안에서 실행해야지~ 하고 파일을 만들었다가 에러 해결에 하루를 다 썼기 때문이다.

어쨌든 아래 사진처럼 하나 폴더를 더 만들어서 아래 명령어를 입력하여 fly.toml 파일을 생성해주면 된다.

fly config save -a <배포한 데이터베이스 app name>

6. 만들어진 fly.toml 파일을 열어서 안에 내용을 이렇게 사진처럼 바꿔준다. 맨 위에 app, kill_signal, kill_timeout, mounts, processes 는 내버려 두고, services 부터 아래 내용으로 바꿔준다. 공식문서에도 나와있는데 그대로 복사해서 붙여넣기 하면 된다. 

7. 이제 변경한 toml 파일을 데이터베이스 app 에 배포해야 한다. 그 전에 fly image show -a <배포한 데이터베이스 app name> 을 터미널에 입력해서 Tag 버전을 확인해준다. 나의 경우 14.6 인데, 여기서 정수인 14 만 필요하다.

8. 이렇게 Tag 버전을 확인했으면 이제 배포를 진행해준다.

fly deploy . -a <배포한 데이터베이스 app name> -i flyio/postgres:<Tag 버전 정수부분 숫자>


이제 TablePlus 로그인창으로 다시 돌아가서 connect 를 누르면 잘 실행된다! Host/Socket 부분에는 DB 이름 말고 v4 로 설정한 ip 주소를 넣어도 잘 로그인 된다.

 

끝!


*GUL 정하기 전 참고한 블로그

 

(PostgreSQL) PostgreSQL Client Tool 비교하기

나는 PostgreSQL Client 유목민이다 🐎🐎 그러던 중 PostgreSQL Client 비교한 글을 읽어봤는데, 꽤 유용했다! 적당한 툴을 찾지 못해서 PGAdmin, Psequel를 혼용해서 사용하고 있었는데, 이제는 TablePlus으로

americanopeople.tistory.com

*fly.toml 설정 관련 공식문서

 

Fly.io: A New Public Cloud

Documentation and guides from the team at Fly.io.

fly.io

 

댓글