psql

Posted on:

PostgreSQLのクライアントツールであるpsqlは結果を表示するときにPAGERを利用できます。 PSQLのPAGERを設定するも参照してください。

psql

psqlは、結果を表示するときに最初の行にヘッダーとして列名が表示され、その下に列が|で区切られて表示されます。 ovを利用すると、ヘッダーと列を指定することで、より見やすく表示できます。

PSQL_PAGERは、psqlの出力結果を表示するためのページャーを指定する環境変数です。以下は、PSQL_PAGER の推奨設定例です。これらの設定により、結果が見やすくなり、効率的にデータを確認できます。 ヘッダー1を指定(-H1)、列の区切りに"|“を指定(-d "|")、カラムモード)-C)を設定します。 画面に収まる場合は、ページャーを終了します(-F)。 列の色を変える(--column-rainbow)のもオススメです。

また、v0.37.0から追加された列の整列をする--alignオプションを利用すると、列の縮小もできます。

PSQL_PAGER='ov -F -C -d "|" -H1 --column-rainbow --align'

psqlの表示をカスタマイズするために、ovの設定ファイルconfig.yamlを使用します。config.yamlはホームディレクトリの.config/ov/に配置し、以下のように設定します。

StyleHeader:
  Background: "#23274f"
  Bold: true
StyleColumnHighlight:
  Foreground: "lightcyan"
  Reverse: true
StyleAlternate:
  Background: "#2a2a2a"

psql psql

watch(PostgreSQL 15)

PostgreSQL 15からはwatchが利用できます。watchは、指定したコマンドを定期的に実行し、その結果を表示するツールです。これにより、データベースの状態をリアルタイムで監視できます。 PSQL_WATCH_PAGER には以下の設定を推奨します。 これにより空行で区切られた最後のセクションを表示し続けます。

PSQL_WATCH_PAGER='ov --follow-section --section-delimiter "^$"'

watch watch

expanded output (\x)

拡張出力(\x)で表示のときには、レコード区切りをセクション区切りとして扱うと、レコード区切りでスクロールするため、見やすくなります。以下のコマンドで拡張出力モードを有効にできます。

PAGER 'ov -F --section-delimiter "^-"'

\\x \\x

(\x)と\watchを組み合わせることもできます。

watch2 watch2

unaligned (\a)

psql側で\aを指定して、アラインメントなし(列を揃えない)表示にしてもov--alignオプションを指定することで列を揃えることができます。以下のように、psqlでアラインメントなしモードを有効にします。

PSQL_PAGER='ov -F -C -d "|" -H1 --column-rainbow --align'

unalign unalign