Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【PostgreSQL】逆引きコマンド備忘録:psqlのページャーOFF・SQLファイル実行・pg_dump

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

PostgreSQL(以下、Postgres)をコンソールから操作する際、「あれ、あのコマンドのオプション何だったっけ?」となりがちな操作を自分用の備忘録としてまとめました。

今回は、日々の運用やデータメンテナンスでよく使う3つのテクニックを逆引きで紹介します。

1. 検索結果のページ分割(pager)を一時的にOFFにする

psql で大量のレコードを持つテーブルを SELECT すると、自動的に画面がページ分割(Lessのような状態)になり、スペースキーを押さないと先に進めなくなります。

「一気に全行をコンソールに出力して画面をスクロールして見たい!」という時は、以下のコマンドでページャーを一時的に無効化できます。

コマンド(psql内で実行)

SQL

\pset pager off

💡 ここがポイント

この設定は恒久的なものではなく、一度 psql からログアウト(\q)すると自動的に元の設定(デフォルトのページ分割有効)に戻ります。 その場限りの確認をしたいときに非常に便利です。

2. 外部のSQLファイルからコマンドを実行する

あらかじめ作成しておいた .sql ファイルを、Postgresサーバーに対して一括実行(インポート)させるコマンドです。

コマンド(シェルから実行)

Bash

psql -h ホスト名 -p 5432 -U ユーザー名 -W DB名 < SQLファイルパス

各オプションの解説

  • -h : 接続先のホスト名(IPアドレスなど)

  • -p : ポート番号(デフォルトは 5432

  • -U : 接続するユーザー名

  • -W : パスワード入力を求める(コマンド実行後にパスワードを聞かれます)

  • DB名 : 接続対象のデータベース名

  • < : リダイレクトを使ってSQLファイルを流し込みます

3. pg_dumpで「特定のテーブルだけ」ダンプを取得する

データベース全体ではなく、「特定のテーブル1つだけ」をバックアップ(ダンプ)したいときに使うコマンドです。

コマンド(シェルから実行)

Bash

pg_dump -h ホスト名 -p 5432 -U ユーザー名 -c DB名 -t テーブル名 > ダンプファイル名.sql

各オプションの解説

  • -c (–clean): 超重要オプション。 リストア(復元)する際、あらかじめ既存のテーブルを一度削除(DROP TABLE)してから再作成するSQLを含めてくれます。データの上書きトラブルを防ぐために付けておくと安全です。

  • -t (–table): ダンプを取得したい特定のテーブル名を指定します。

  • > : 出力リダイレクトを使って、指定したファイル名でダンプを保存します。

まとめ

  • 画面が止まって鬱陶しいときは \pset pager off

  • まとめて実行は psql ... DB名 < file.sql

  • 特定テーブルのバックアップは pg_dump ... -c -t テーブル名 > file.sql

どれも検証環境の構築やデータ修正時によく使うコマンドばかりです。忘れてしまったときは、ぜひこのページをコピペして使ってください!

タイトルとURLをコピーしました