Heroku PostgresをLaravelで使う手順

HEROKU Laravel

Heroku PostgresをLaravelから使う方法を説明します。

Heroku Postgresというのは、Herokuが提供しているマネージドなPostgreSQLのデータベースサービスです。
1万行まではfreeプランで無料で使えるようですが、1万行というのがテーブル単位なのか全テーブル合計なのかがよくわからない…

詳しく分かったら別途記事を書きます。

では使い方です。

Herokuにpostgresqlを作成する。

heroku上にアプリケーションは作成済みとします。

herokuコマンドでpostgresを有効にします。

heroku addons:create heroku-postgresql:hobby-dev -a アプリ名

「アプリ名」の所は、Heroku上に作成したアプリ名を指定します。

各プランのスペックや、プランごとのpostgres作成方法は以下にあります。https://elements.heroku.com/addons/heroku-postgresql

Heroku postgresの接続情報を取得する。

herokuコマンドで接続情報を取ります。

コマンドと実行結果は以下のような感じ。

>heroku pg:credentials:url -a アプリ名
Connection information for default credential.
Connection info string:
  "dbname=DB名 host=DBホスト名 port=5432 user=DBユーザー名 password=DBパスワード sslmode=require"
Connection URL:
  postgresのURL

Herokuに環境変数を設定する。

LaravelからHeroku postgresに接続するために、Heroku上に環境変数を設定します。

環境変数の値は、上記のpostgres接続情報を使用します。

>heroku config:set -a アプリ名 \
 DB_CONNECTION=pgsql \
 DB_HOST=DBホスト名 \
 DB_DATABASE=DB名 \
 DB_USERNAME=DBユーザー名 \
 DB_PASSWORD=DBパスワード

この方法のほかに、Heroku用の.env.herokuのようなファイルを作成してそこにDB接続情報を書いておき、デプロイ時にコピーするという方法もあります。

以下で説明しています。

404 NOT FOUND | mrkmyki@フリーランスブログ
Webエンジニア/PHP好き

heroku上でmigrateを実行する。

herokuコマンドでmigrateを実行します。

>heroku run php artisan migrate -a アプリ名
Running php artisan migrate on ⬢ アプリ名... up, run.2660 (Free)
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
…

 

手順まとめ

まとめると、4つのコマンドをたたくだけです。

> heroku addons:create heroku-postgresql:hobby-dev -a アプリ名 
> heroku pg:credentials:url -a アプリ名
> heroku config:set -a アプリ名 \
  DB_CONNECTION=pgsql \
  DB_HOST=DBホスト名 \
  DB_DATABASE=DB名 \
  DB_USERNAME=DBユーザー名 \
  DB_PASSWORD=DBパスワード
> heroku run php artisan migrate -a アプリ名

 

これでHerokuにデプロイしたLaravelからHeroku postgresに接続して動かせるようになったはず。

勉強用に無料でデータベースが使える環境があるとうれしいですね。

小規模なサービスなら、公開しているアプリでもそこそこ使えるかもです。

コメント/ピンバック

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