Cream-Kuchen

HerokuでPostgreSQLを設定・利用準備

はじめに

HerokuでデータベースをPostgreSQLにするにはどうすれば良いのでしょう?

PostgreSQLを導入し、webアプリに設定する方法を紹介します。

目次


1, PostgreSQLの導入

下記ページからHerokuにログインしてインストールしてください。

Heroku Postgres - Add-ons - Heroku Elements


10,000レコードまで等の制約内において、無料で利用可能です。

f:id:Cream-Kuchen:20200606144357p:plain 詳細は上記ページの「Plans & Pricing」を参照してください。

2, PostgreSQLのユーザ情報確認

webアプリのデータベースをPostgreSQLにするため、詳細を確認しましょう。


1, まず、先ほど導入したPostgreSQLのページに飛びます (赤色の丸をクリック)。 f:id:Cream-Kuchen:20200606154647p:plain


2, 次に、Credential画面に飛びます (右側の赤色の四角をクリック)。 f:id:Cream-Kuchen:20200606145849p:plain


3, 最後に、Heroku CLI以外の6項目を確認します (赤色の下線)。 f:id:Cream-Kuchen:20200608133212p:plain

3, webアプリのデータベースを設定

参考にさせて頂いたwebアプリ開発のテンプレートを基に紹介します。

※ 参考にしたテンプレートについては、こちらをご覧ください。 cream-kuchen.hatenablog.com



テンプレートの「Config」フォルダ配下にある「settings.py」を修正します。
修正前

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


修正後

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '[確認したURI]',
        'USER': '[確認したUser]',
        'PASSWORD': '[確認したPassword]',
        'HOST': '[確認したHost]',
        'PORT': '',
    }
}

※ 大括弧 [確認した ...] の中を書き換えてください。

4, モデルのデータベース利用準備

テーブルの読み・書き・削除のためにモデルファイルにも変数を設定してください。

connection_config = {
  'user': '[確認したUser]',
  'password': '[確認したPassword]',
  'host': '[確認したHost]',
  'port': '[確認したPort]',
  'database': '[確認したDatabase]'
}

※ 大括弧 [確認した ...] の中を書き換えてください。


また、上記変数を用いたテーブルの操作方法は、下記の記事を参照してください。
cream-kuchen.hatenablog.com

5, 注意:ユーザ情報の環境変数

ユーザ情報をプログラムにベタ書きすることは、セキュリティ上懸念がありませんか?
Gitでコードを公開している(したい)場合、見られてしまうのは困りますよね。

こちらの記事を参考に設定してみてください。 cream-kuchen.hatenablog.com



おわりに

HerokuでデータベースをPostgreSQLにするため、導入・設定する方法を紹介しました。

テンプレのSQliteでは嫌っ!という方の参考になれば幸いです。