팀에서 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 |