【Laravel】pgAdminを使ったデータ確認方法
はじめに
前回の記事で、Laravel を用いた TODO リストの API を作成しました。ですが、データの処理が想定通りに行えているか、実際のデータを確認できていませんでした。
pgAdmin で Laravel のデータを確認する方法
データベースに正しくデータが保存されているか確認が必要です。ここでは、PostgreSQL の管理ツールである pgAdmin 4 を使ってデータを確認する方法を説明します。
pgAdmin のインストールと接続設定
1. pgAdmin のインストール
pgAdmin は公式サイトからダウンロードしてインストールできます。
# Macの場合(Homebrewを使用)
brew install --cask pgadmin4
--cask とは?
mac の GUI もコマンドでインストールしたい
上記を実現するためのオプションコマンドであるという、理解で問題ない認識です。
詳細は参考にした記事をご覧ください
2. pgAdmin の起動と接続設定
pgAdmin を起動し、PostgreSQL サーバーに接続します。
- pgAdmin を起動する
設定で日本語に変更できます。
- 左側のサーバーパネルで右クリックし、「サーバーの作成」を選択
- 以下の情報を入力します:
この部分は各環境によって異なります。今回は私が以前投稿した記事内容に基づいて設定します。
【一般】タブ:
- 名前:Laravel TODO DB(任意の名前)
【接続】タブ:
- ホスト名/アドレス:127.0.0.1(ローカルの場合)
- ポート:5432(PostgreSQLのデフォルトポート)
- メンテナンスデータベース:todo_app
- ユーザー名:todo_user
- パスワード:your_password
以下は GUI での設定画像です。参考までに。
- 「保存」をクリックして接続を作成
正しく接続できない場合は、ERROR 文が表示されます。
TODO テーブルのデータを確認する
データの閲覧
- pgAdmin のサーバーリストから作成したサーバーを展開
- データベース → Laravel の.env ファイルの DB_DATABASE に指定したデータベース名を展開
- スキーマ → public → テーブルと進む
-
todos
テーブルを右クリックし、データを閲覧/編集 → すべての行 を選択
すると右上部には SQL 文、右下部にはデータ出力を確認できます。データを追加していない場合は、Column の情報のみ表示されます。
SQL クエリの実行
より詳細な検索や条件付きの表示を行いたい場合は、SQL クエリを実行できます。
- ツールバーの「ツール」から「クエリツール」を選択
クエリを実行した DB 項目を選択します。登録されていれば、表示されます。
- 以下のような SQL を入力してデータを表示・検索
-- すべてのTODOを表示
SELECT * FROM todos;
- 「実行」ボタンをクリックしてクエリを実行
pgAdmin でのクエリ実行画面例
余談)F5 でショートカット実行ができます。
pgAdmin でのデータ操作
データの追加・削除
pgAdmin から直接データを追加できます:
-
todos
テーブルを表示します。 - 表示された画面で「+」ボタンをクリック
- 赤枠ボタンで追加、青枠ボタンで削除 が可能です。
データの編集
既存のデータを編集する方法:
- 編集したい行のセルをダブルクリック
- 値を変更
- 「OK」をクリック
Laravel アプリケーションとの連携確認
API 操作とデータベース確認の流れ
- Postman などを使って API にリクエストを送信
- pgAdmin でデータベースを確認
例:新しいTODOを作成した場合の確認フロー
1. PostmanでPOSTリクエストを送信
2. pgAdminで新しいレコードが追加されたことを確認
データの整合性チェック
API のレスポンスとデータベースの値が一致しているか確認しましょう:
-- 特定のIDのTODOを確認
SELECT * FROM todos WHERE id = 1;
このクエリ結果と API のレスポンスを比較し、データの整合性を確認します。
トラブルシューティング
接続エラーの場合
-
.env
ファイルの設定を再確認 - PostgreSQL サービスが起動しているか確認
まとめ
pgAdmin を使うことで、前回作成した TODO リスト API のデータを視覚的に確認・管理できます。API のテストと並行してデータベースの状態を確認することで、アプリケーションの動作を把握できます。
Discussion