(備考)Heroku PostgresSQLを利用する

Heroku導入を以前お話しましたが、そのHerokuではデータベースが用意されています。

PostgresSQLと呼ばれるものです。データベース自体は様々なものがありますが、私自身ガッツリ運用するわけでもないので、Herokuに付随するPostgresSQLなら利用しやすいだろうという点で選んでいます。

上のサイトで紹介されているように特徴がありますが、私自身そこまで理解していないので、これ以下の説明については悪しからず。

Heroku Postgres を追加する

まず大前提として、Herokuサービスのおまけということです。そのため、なにかのアプリケーションのアドオンの形になります。

Herokuのダッシュボードより、”Resources” ページに"Add-ons" の項目がある検索窓にPostgresと入力すると、一番上に”Heroku Postgres”が来るためそれをクリック。

そうすると下のような画面が表示される。

プランの選択画面であるが、無料であるHobby Dev – Free を選んでいる。ここは自分の使用する具合によって有料プランも検討すべきでしょう。
これで、データベースが作成されました。

ただ、このダッシュボード上でできる操作は限られており、ここから先はコマンドプロンプトでの操作になります。

コマンドプロンプトで作成したデータベースを操作するために

ここからは、データベースを操作するまでの道のりを説明します。

Herokuを操作→Postgresの操作の二段構えになります。

Heroku CLI の導入

まず、Herokuを操作するために、Heroku CLIを導入する必要があります。

これについては、こちらのnoteが詳しいため割愛します。

ダウンロードが済むとコマンドプロンプトにて、

heroku login

を入力して実行すると、なにかキーを押してくださいと求めれる。押すとブラウザが開きログイン画面となる。ログインすることでコマンドプロンプトでもHerokuを扱うことができる。



PostgresSQLの導入

ただ、このままでは、データベースのPostgresは使えない。

Postgres SQL をダウンロードする必要がある。

これについては、悪戦苦闘した様子がこちらにあるが

後追いで参考しようとすると回りくどいところもあるためにこちらでシンプルに説明します。

まず、PostgresSQLのダウンロード


そして、インストーラーを起動して、順に進めていけばよいが、途中パスワードの設定やポート番号について求めれるがここは特段こだわらなくても今回の範囲では影響はない。


インストール終了後、もう一つすべきことがあり、Pathを通さなければならない。上で紹介しているが、Postgresフォルダ下のbin フォルダへPathを通さなければならない。

これはお使いのパソコンによって少し違うため、自分で確認してほしい。
Pathを通す作業があるため、この点全くの初心者には難しい点である。

これで、PostgresSQLが使えるようになった。


コマンドプロンプトから実際にデータベースへアクセス


最後に通してで動かしてみよう。

コマンドプロンプトで、上にもあったようにログイン。

heroku login

ログイン後は、PostgresSQLに接続するのだが、

そのためにHerokuのダッシュボードからデータベースの情報を確認するひつようがある。

アドオン追加後にHeroku Postgresのリンクがあるため、クリックすると作成したデータベースの管理画面にいく。

そこの”Settings”をクリックすると、下の画面になる。

ここの”Database Credentials” のView Credentials をクリック。
そうすると、データベースへの接続情報を展開される。そこに書かれている情報は、他人に漏れると不正アクセスされる可能性があるため、取り扱いには注意です。

その項目の中にHeroku CLIがある。

そこの項目の内容をそのままコピー・アンド・ペーストして実行すると、コマンドプロンプトでデータベースに接続できるようになる。


これ以降は、SQL文と呼ばれるもので具体的にデータベース内にテーブルを新規作成したり、データを追加するなどといった操作になる。

そこについて、網羅的記述するには知識不足になるため、私が参考にしたものだけ記載する。


また、Pythonのコードで操作することをしていたため、こちらも載せておく。



以上、参考になれば幸いです。


Shiftkeyについて


noteの内容に共感していただければ、ぜひともサポートを宜しくお願いします。今後の記事投稿の励みになります。