Postgresql 데이터 csv로 저장 및 csv데이터 insert하기
쿼리결과 csv 파일로 저장하기
Database: Postgresql
실행환경: Docker
psql 접속하여 실행하는 법
1
2
3
4
5
6
7docker exec -it <데이터베이스 컨테이너> bash
컨테이너 접속 후
psql -U <name> -d <database>
psql 접속 후
COPY (select * from <tablename>) To '/path/fiilename.csv' With CSV DELIMITER ',' HEADER;스크립트 작성으로 만들기
1
2
3
4
5
6docker exec <데이터베이스 컨테이너> \
su - postgres -c \
'
psql -U <username> -d "<database name>" \
-c "COPY (select * from <table name>) To '"'/path/fiilename.csv'"' With CSV DELIMITER '"','"' HEADER; "
'주의사항: 따옴표 내부에서 문자열 조건이나 경로 입력 시 ‘“‘문자열’”‘로 감싸서 작성해야 문자열로 인식한다.
csv 파일 import 하기
psql 접속하여 실행하는 법
1
2
3
4
5
6
7docker exec -it <데이터베이스 컨테이너> bash
컨테이너 접속 후
psql -U <name> -d <database>
psql 접속 후
COPY <tablename> FROM '/path/filename.csv' DELIMITER ',' CSV HEADER;스크립트 작성으로 만들기
1
2
3
4
5
6docker exec <데이터베이스 컨테이너 이름> \
su - postgres -c \
'
psql -U <username> -d "<database name>" \
-c "COPY <table name> FROM '"'/path/filename.csv'"' DELIMITER '"','"' CSV HEADER; "
'
스크립트 작성 중 알게 된 것
도커로 실행하는 레일스 앱에 스크립트에서 명령을 실행하기위해서는 다음과 같이 작성한다.
1 | docker exec -i <container> rails c <<EOF |