🥴

AWS Aurora PostgreSQL でCOPYコマンドを使うときは

2021/11/24に公開

この記事の概要

intro

Auroraからcsvでテーブルデータ抜こうとしたら、
ERROR: must be superuser to COPY to or from a file が出てぼくブチギレ
ヒントに重要なことが書いてあった。

HINT:  Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.

STDOUT で標準出力をリダイレクトすればOK

psql -h <ホスト> -U <ユーザ> -p <ポート> <DB名> -c "COPY (SELECT文) TO STDOUT WITH CSV HEADER;" >> 任意のファイル名

インポートは STDIN を使う

cat <任意のファイル名> | psql -h <ホスト> -U <ユーザ> -p <ポート> <DB名> -c "COPY <テーブル名> FROM STDIN (FORMAT CSV, HEADER true)"

Discussion