본문 바로가기

Computer Science/DB

[Postgresql] datagrip에서 postgres db 백업하기

datagrip에서 postgres db 백업하기

✅ 상황

저의 상황은 docker로 postgres를 설치하고 운영해왔습니다. 다른 db를 datagrip으로 백업을 하려 했는데요. 이 때 마주친 문제점을 공유합니다.

 

db를 선택 ⇒ 왼쪽 클릭 ⇒ import/Export ⇒ Export with ‘pg_dump’를 사용합니다.

🔷 postgres가 안깔려있다.

docker에 컨테이너 형태로 db를 사용해서 로컬pc에는 postgres 자체가 안깔려있었습니다. 이 때 생기는 문제점이 있었습니다.

바로 Path to pg_dump 부분에 Path to executable is wrong 이라는 오류가 나왔습니다.

이건 datagrip에서 pg_dump.exe 파일을 찾지 못했기 때문입니다. 이 때문에 postgres를 설치했습니다.

postgres 다운로드

 

정해진 경로대로 다운 받으시면 pg_dump를 찾을 수 있는데요.

저의 경로입니다. C:\\Program Files\\PostgreSQL\\16\\bin

위 경로 안에 pg_dump.exe파일을 찾아서 Path to pg_dump에 넣으시면 됩니다.

 

🔷 COPY 문제

statements는 꼭 insert with columns를 선택해주셔야 합니다. 왜냐하면 이걸 설정 안하면

sql문이 COPY형태로 생성이 됩니다.

 

[57014] ERROR: COPY from stdin failed: COPY commands are only supported using the CopyManager API.

그러면 datagrip에서 이런 에러가 나올 수 있습니다. 이 때문에 모든 sql문을 insert 문으로 만드는게 좋습니다.

 

data only를 선택해서 데이터만 뽑을 수 있고요. 테이블을 복사가 가능합니다.

pg_dump가 끝나면 sql문이 만들어지는데요. 위에 적은 Out path에 적힌 파일에 sql문이 생성됩니다.

 

 

🟩 import 하는법

백업, 복사를 원하는 db에 오른쪽클릭 ⇒ SQL Scripts ⇒ Run SQL Script 를 합니다.

아까 pg_dump의 결과값의 sql파일을 실행시키면 됩니다.

 

728x90