PostgreSQLのパッケージに含まれているクライアントプログラムの1つ。 データベースにアクセスして、コマンド操作を行える。 また、-f オプションでファイルに記述したSQL コマンドを垂れ流すことができる。
例
psql database_name psql -d database_name psql -U user_name psql -f sql_command_file
シェルスクリプトからデータベースの内容を取得する際に、自動ページングによってそのままではレコードがすべて取得できなかったため、対応しました。 シェルからちゃちゃっとDBのレコードを取得してチャットで送りたい場合や、シェルスクリプトでPostgreSQLのレコードを取得したい場合などに役立ちましたら幸いです。 症状 psqlコマンドでPostgreSQLデータベースにログインした状態で、「select * from テーブル名」を実行したところ、ターミナルに--More--が表示されて、レコードを全件取得することができない。 psqlコマンドでは自動ページング機能が有効になっており、長い出力が自…
PostgreSQLのダンプ取得とテスト環境へのリストア作業を、毎回調べ直してしまうので、自分用の作業メモとしてまとめておきます。 本記事では、本番データをダンプして、テスト環境に反映するまでの流れを扱います。会社名・サーバー名・DB名などはすべてダミーに置き換えています。 この記事で使うダミー環境 全体の流れ 手順 本番DBサーバーにSSH接続する pg_dumpでダンプを取得する ダンプファイルを確認する ローカルPCにダウンロードする テストDBサーバーにアップロードする テストDBのバックアップを取る pg_restoreでテストDBに反映する 反映先のDBが存在しない場合 反映結果を…
PostgreSQL 基本コマンド一覧(psql 辞書)
関連記事 概要 参考情報 関連記事 GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ 概要 以下、自分用のメモです。いつも忘れるのでここにメモメモ。。。 psql で、結果の出力を縦表示するには \x と打ち込む。 再度、\x とすると元に戻ります。 これをいつも忘れるんですよねぇ・・・w 参考情報 過去の記事については、以下のページからご参照下さい。 ブログ過去記事置き場 サンプルコードは、以下の場所で公開しています。 Goのサンプルコード置き場 C#のサンプルコード置き場 Pythonのサンプルコード置き場
概要 PostgreSQLでプログラム上から単発のSQLを実行したい場合に、ファイルを経由せずに1回限りのパスワードを与える方法の話です。 最初に結論まとめ コマンドプロンプトの/cのセッション内で環境変数を設定し、そのままコマンドも実行します。例えば次のようになります。 cmd /c "set PGPASSWORD=user1password&&psql.exe --username=user1 --dbname=postgres --command="CREATE DATABASE database1'"" 話の背景 PostgreSQLでpsql.exeを使って、--commandオプシ…
はじめに 万一の障害や操作ミスなどに備えてデータベースのバックアップは必要不可欠です。 さまざまなバックアップ管理ツールがありますが、今回は WAL-G というツールでデータをバックアップとリストアする方法を紹介します。 WAL-Gとは WAL-G(公式ドキュメント)は PostgreSQL のバックアップ・リストアツールである WAL-E の後継として開発されたツールです。 WAL-E の機能を継承しているため、 WAL-E と同様にベースバックアップと WAL アーカイブを使用して、特定の時点または最新の状態にデータを復元することができます。 WAL-E と比べて復旧時の復元速度が 4 倍…
結論 環境変数に各種設定項目を設定して実行します。この環境変数は psql コマンドと共通です。 direnv で設定するとたとえば接続先ごとに柔軟な変更ができます。 例 $ export PGSSLMODE="verify-ca" $ export PGSSLROOTCERT="server-ca.pem" $ export PGSSLCERT="client-cert.pem" $ export PGSSLKEY="client-key.pem" $ pgcli -h localhost -p 5432 -U username -d postgres 参考 参考の参考 psql では環境変…
大規模なシステムでは、パフォーマンスやセキュリティ上の制約により、複数のデータベースをシャーディング(水平分割)するアーキテクチャを選択するケースは多いかと思います。 多くのPostgreSQLユーザーはpsqlコマンドを使って調査や保守を行いますが、シャーディングにより沢山のデータベースを管理するようになると、データベースの接続先を入力するのはとても面倒な作業となります。 エンジニアたるもの、「面倒だ」と思う心は大切にすべきです。 今回はシャーディングされたデータベースをpsqlで管理するための工夫をご紹介します。 寺岡 佑起(テラオカ ユウキ)AWS Summit 2022で発表してきまし…
psqlコマンドを実行する際にパスワード入力を省略するためのメモになります。
psqlコマンドを利用し、外部データベースにアクセスできるまでのメモになります。