본문 바로가기

BackEnd/postgresql

CSV 파일을 원격 postgresql DB table에 copy

팀에서 A DB에서 운영하던 데이터 일부를 B DB로 복사해달라는 요청이 있었는데 fk 되는 컬럼값이 달라서 무작정 전체 테이블이 dump된 데이터를 recovery 할 수가 없었다. 그래서 copy해야하는 컬럼값만 가져와서 fk 을 합쳐서 csv로 만들고 해당 csv 데이터를 테이블에 복사해주는 방법을 택했다. 아래는 원격 DB에 csv 파일의 데이터를 copy하는 command 이다. 

 

PGPASSWORD={password}\
psql -h {host} \
-U {user} 
-d {dbname} 
-c "\copy {TableName(column_name1, column_name2)}
   from {csv_file path} with delimiter ',' csv HEADER;"

원래 psql 접속에 사용하던 명령에서 c 옵션을주고 copy 명령을 실행한다. 

 

csv의 첫번째 행에 삽입할 컬럼의 이름을 지정해주면 자동으로 해당 컬럼에 데이터들이 삽입된다. 

'BackEnd > postgresql' 카테고리의 다른 글

Target database is not up to date  (0) 2022.06.22
psql Command  (0) 2022.06.15