2022/07/04
psqlコマンドを使い、SQLファイルを実行して、csv/tsvに結果を出力する
稀にデータ抽出作業を手動で行う必要があり、都度やり方を調べるので備忘録として残しておきます。
サーバーにログイン
まずは、psql
コマンドを使って、postgresql dbにアクセスできるサーバーにログインします。
(私は多くのアプリで、postgresql dbをk8s上に構築しているので、 kubectl exec -it pod-name -n your-namespace -- bash
等でログインします)
SQLファイルを保存
# 例として)以下のようなSQLファイルを保存して、データを抽出することにします。
$ cat <<EOF > select_user_names.sql
select
u.id as ユーザーID
, u.name as 氏名
from
users as u
where
u.status = 'active'
order by
u.id asc
;
EOF
CSV/TSVファイル出力
# csvファイルで保存する場合
$ psql -f ./select_user_names.sql -U db_user -d db_name -A -F, > ./select_user_names.csv
# tsvファイルで保存する場合
$ psql -f ./select_user_names.sql -U db_user -d db_name -A -F $'\t' > ./select_user_names.tsv
psqlを実行したディレクトリに結果ファイルが出力されます。
関連する記事

psqlコマンドを使い、SQLファイルを実行して、csv/tsvに結果を出力する
postgresqldbサーバーにログインして、SQLファイルを実行して結果をcsv/tsvに出力する方法です。

[Rust][Psql]Dieselのよくやる使い方まとめ
Rust Dieselのよくやる使い方をまとめてみました

POSTGRESQLで行更新時に自動で更新日時を設定する
TRIGGERを使って、行更新時に更新日時を特定のフィールドに設定できるようにしました

Rust dieselでpostgresqlのjson型を使う
dieselでpostgresqlのjson型のフィールドに対するクエリができるようにしました