[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를 설치했습니다.
정해진 경로대로 다운 받으시면 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파일을 실행시키면 됩니다.