自分だけのクイズを作成しよう - Quipha
スポンサーリンク

【Heroku】PostgreSQLにローカルのクライアントから接続

サーバー

当サイトではアフィリエイト広告を利用しています。

スポンサーリンク

はじめに

HerokuではPostgreSQLが利用できます。

プランについての詳細は以下をご覧ください。

適切な Heroku Postgres プランの選択 | Heroku Dev Center
さまざまな Heroku Postgres プランの違いと、各ユースケースに最も適したプランをどのように選択するかについて理解します。

今回は、Heroku上に作成したPostgreSQLのデータベースに、ローカルPCのクライアントから接続してデータを確認します。

他にも私のブログで、サーバーについて解説している記事がありますのでご覧ください。

使用するバージョン
  • Windows 11 / 10 or macOS Monterey (M1)
  • Heroku
  • PostgreSQL
  • psql (PostgreSQL)

クライアントの作業は、WindowsでもMacでも同様にできます。

PostgreSQLクライアントのインストール

Windows

Windowsで作業を行う場合ですが、今回はWSL2のUbuntuを使用しました。
導入は簡単にできますので、以下の記事を参考にしてください。

WSL2のUbuntuからコマンドを実行します。

以下のコマンドを実行し、PostgreSQLのクライアントをインストールします。

$ sudo apt install -y postgresql-client

バージョンを確認します。

$ psql --version

psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)

Mac

ターミナルを起動します。

Homebrewをインストールしていない場合は、以下の記事を参考にしてください。

Homebrewを利用してPostgreSQLクライアントをインストールします。

以下のコマンドを実行します。

% brew install libpq

以下のコマンドでPATHを通します。

% echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc
% source ~/.zshrc

バージョンを確認します。

% psql --version

psql (PostgreSQL) 14.2
スポンサーリンク

Heroku PostgreSQLに接続

以下の記事でデプロイしたアプリをもとに確認します。

PostgreSQLへの接続情報を確認しましょう。
Herokuのコマンドから確認します。

$ heroku config:get DATABASE_URL

postgres://aaaa:bbbb@cccc:5432/dddd

接続文字列は以下のような形式になっております。

postgres://user:password@host:port/database

実行結果の場合の例
  • user: aaaa
  • password: bbbb
  • host: cccc
  • port: 5432
  • database: dddd

psqlコマンドで接続しますが、形式は以下です。

psql -h [host] -p [port] -U [user] -d [database]

コマンドを実行し接続します。
実行後に、パスワードを求められますので入力します。

$ psql -h cccc -p 5432 -U aaaa -d dddd

ログインが成功すると、データベース名が表示されます。

dddd=>

以下のコマンドでテーブルの一覧を確認します。
アプリで使用する、「scheduleCalendar_event」というテーブルも確認できました。

dddd=> \dt

                      List of relations
 Schema |            Name            | Type  |     Owner
--------+----------------------------+-------+----------------
 public | auth_group                 | table | aaaa
 public | auth_group_permissions     | table | aaaa
 public | auth_permission            | table | aaaa
 public | auth_user                  | table | aaaa
 public | auth_user_groups           | table | aaaa
 public | auth_user_user_permissions | table | aaaa
 public | django_admin_log           | table | aaaa
 public | django_content_type        | table | aaaa
 public | django_migrations          | table | aaaa
 public | django_session             | table | aaaa
 public | scheduleCalendar_event     | table | aaaa
(11 rows)

SQLで、データを確認することができました。

ddddm=> select * from "scheduleCalendar_event";

 id | start_date |  end_date  | event_name
----+------------+------------+------------
  1 | 2022-03-02 | 2022-03-03 | イベント
  2 | 2022-03-09 | 2022-03-11 | お買い物
(2 rows)

通常は外部からはアクセスできないようにしている場合が多いと思いますが、今回の場合は接続できますので、データベースの接続情報の取り扱いには十分に注意しましょう。

さいごに

HerokuのPostgreSQLのデータを確認する場合に、参考にしてください。

他にも私のブログで、サーバーについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

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