PostgreSQL の無料 GUI アプリを導入する ( pgAdmin, DBeaver )
はじめに
Relational Database ( RDB ) を GUI アプリで操作したい。
今までは MySQL を使用する場合、 Sequel Ace を使用していました。
ただ今回は PostgreSQL を使用します。
しかし調べてみると選択肢が多い、、どれを選ぶか迷います。。。
候補を選定
前提としては無料で使用できること、また機能としてはテーブルのレコードが概観できて GUI からクエリ実行できるなら十分と考えています。
そのため、上記条件の場合は pgAdmin と DBeaver Community が候補になりました。
Postico 2 と Aqua Data Studio は、多機能、チーム運用、高パフォーマンス、 PosgreSQL 互換 DB 接続可能など売りですが、1人で費用をかけたくないため、候補から外れます。
次は pgAdmin と DBeaver Community の操作感を確認するため、実際に触ってみます。
確認環境
GUI アプリは、 以下リポジトリで用意する PostgreSQL サーバと接続します。
masayuki-0319/remix_todoapp: Remix, PostgreSQL, Docker ( DB only ), Prisma
# docker-compose.yml
version: '3.9'
services:
db:
image: postgres:15-alpine
restart: always
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_DB=sample_development
ports:
- '54320:5432'
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
driver: local
アプリ導入
pgAdmin 4
Homebrew 経由でインストールを実行します。
brew install --cask pgadmin4
インストール完了すると、 Launchpad に以下のアイコンが追加されます。

pgAdmin 4 を起動します。
Add new server ボタンを押下します。

設定ダイアログが表示されるため、以下の項目を入力し、「SAVE」ボタンを押下します。
| 項目 | 入力 |
|---|---|
| General > Name | 任意の値 ( development ) |
| Connection > Host name/address | 接続先サーバのホスト名 ( localhost ) |
| Connection > Port | 接続先サーバのポート番号 ( 54320 ) |
| Connection > Maintenance database | 任意の値 ( デフォルト設定 ) |
| Connection > Username | 接続ユーザ名 ( デフォルト設定 ) |
| Connection > Password | 接続ユーザのパスワード ( password ) |


接続成功すると、 左サイドバーのフォルダ構造の UI において、 Servers フォルダに Name で入力した値が表示されます。
また、 Databases > sample_development ( Webアプリで設定した DB 名 ) > Schemas > public > Tables を参照すると、 Web アプリで設定したテーブルが確認できます。

DBeaver
brew install --cask dbeaver-community
インストール完了すると、 Launchpad に以下のアイコンが追加されます。

DBeaver を起動します。
サンプルデータベースを作成を促すダイアログが表示されます。
今回は不要なため、「いいえ」ボタンを押下します。

PostgreSQL を選択し、「次へ」ボタンを押下します。

設定ダイアログが表示されるため、以下の項目を入力し、「テスト接続」ボタンを押下します。
| 項目 | 入力 |
|---|---|
| 一般 > Server > Host: | 接続先サーバのホスト名 ( localhost ) |
| 一般 > Server > Port: | 接続先サーバのポート番号 ( 54320 ) |
| 一般 > Server > Database: | 接続先 DB 名 ( sample_development ) |
| 一般 > 認証 > 認証: | Database Native ( デフォルト設定 ) |
| 一般 > 認証 > ユーザー名: | 接続時ユーザ名 ( デフォルト設定 ) |
| 一般 > 認証 > パスワード: | 接続時ユーザのパスワード ( password ) |

もしも、ドライバファイルが見つからない場合、ダイアログに従って「ダウンロード」ボタンを押下します。

ダウンロード後は自動的にテスト接続されます。
テスト接続に成功を確認し、「OK」ボタンを押下します。

「終了」ボタンを押下します。

接続完了し、 Post をダブルクリックすると、テーブルの情報を確認できます。

使用感: レコードの編集
pgAdmin の場合、左サイドバーの DB アイコンを押下してクエリ結果出力後、 Data Output タブで表示されたデータを直接編集できます。
また、SAVE ボタンを押下することで変更が適用されます。

DBeaver Community の場合、テーブルを押下し、 データ タブに表示されたデータをスプレッドシートのイメージで編集できます。
また、SAVE ボタンを押下することで変更が適用されます。

まとめ
pgAdmin を選びました。
触った感じ、どちらも良い感じです。
私は、 UI がモダンであり、編集機能が触ってて安心の感触から pgAdmin に決めました。
DBeaver の編集操作は、スプレッドシートと同じイメージなので直感的に編集できるのですが、意図せぬ編集をしてしまいそうで編集操作が少し怖く感じたため、候補から外しました。
Discussion
DbVisualizer も良さそう。