以下で紹介していることは基本は psql のオプションになります。
docker compose で立ち上げたコンテナに対して内部の DB に入るには以下のようにできます。
# postgresql: コンテナ名 # root: ユーザー名 # postgresql: 接続したい DB 名 docker compose exec postgresql psql -U root postgresql
出力結果をローカルから確認したり、そのままファイル出力させたい時は以下のように -c
オプションで SQL を直接渡せます。
dc exec postgresql psql -U root postgresql -c "SELECT * FROM groups;" id | name -----+----------- 1 | group_01 2 | group_02 3 | group_3 4 | group_4 5 | group_5 6 | group_6 7 | group_7 8 | group_8 9 | group_9 10 | group_10 --More--
件数が多く More が表示される場合は、さらに --pset=pager=off
を指定してあげます。
dc exec postgresql psql -U root postgresql -c "SELECT * FROM groups;" --pset=pager=off id | name -----+----------- 1 | group_01 2 | group_02 3 | group_3 4 | group_4 5 | group_5 6 | group_6 7 | group_7 8 | group_8 9 | group_9 10 | group_10 11 | group_11 ...
また、ヘッダーを表示したくない場合は -t
オプションで指定できます。
$ dc exec postgresql psql -U root postgresql -c "SELECT * FROM groups;" --pset=pager=off -t 1 | group_01 2 | group_02 3 | group_3 4 | group_4 5 | group_5 ... # ↓ のようにリダイレクトできる $ dc exec postgresql psql -U root postgresql -c "SELECT * FROM groups;" --pset=pager=off -t > select_group"$(date "+%Y-%m-%d")"