学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails7.1 | 民泊予約アプリ作成 | 48 | Heroku postgresの設定

↓↓クリックして頂けると励みになります。



47 | Herokuの接続とPush】 << 【ホーム】 >> 【49 | 本番環境のコールバック


Heroku Postgres
Heroku Postgres


Herokuでデータベースを利用する際は、料金がかかります。
動作のみを試す場合は一番安いプランのMINIプラン(月上限$5)でいいと思いますが、レコード数が1万行までに制限されるため注意が必要です。
次に安いBASICプラン(月上限$9)はレコード数が1千万行に増えますが、同時接続数が20ユーザーに制限されるため、こちらも注意が必要です。


まずHerokuダッシュボードでDataをクリックします。

HerokuダッシュボードでDataをクリック
HerokuダッシュボードでDataをクリック



postgresを選択します。

postgresを選択
postgresを選択



postgresをインストールします。

postgresをインストール
postgresをインストール



プランを選択してオーダーします。

プランを選択してオーダー
プランを選択してオーダー



選択したプランを確認してください。

プラン確認
プラン確認



「Data」→「Settings」からデータベースを選択してください。

データーベースをクリック
データーベースをクリック


「Database Credentials」をクリックします。

「Database Credentials」をクリック
「Database Credentials」をクリック



データベースの情報がでますので、この情報をコピーします。

データベースの情報
データベースの情報



このデータベース情報を「config/database.yml」ファイルの「production」の項目に入力します。

production:
  <<: *default
  database: dgp6***
  username: tbhsje***
  password: f72618c0a2539d014***
  host: ec2-34-236-199-229.compute-1.amazonaws.com



保存してGithubにコミットします。
コミット後、Herokuにpushしてください。


マイグレーションファイルをHerokuデータベースに適用します。
コマンド
heroku run rails db:migrate


Herokuのコンソールページでマイグレーションコマンドを走らせることもできます。

Run consoleを起動
Run consoleを起動


マイグレーション適用
マイグレーション適用



この時、Macで開発を進めていると以下のエラーに遭遇することがあります。

 [__NSCFConstantString initialize] may have been in progress in another thread when fork() was called



これはpostgresとmacOSとの互換の関係で起きるエラーで、「.bash_profile」ファイル及び「.zshrc」ファイルに以下の記述を追加することで解決されます。

export DISABLE_SPRING=true
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES



open .bash_profile open .zshrcなどとしてファイルを開けば編集できます。
再びrails db:migrateを行えばエラーが出なくなります。


マイグレーションが成功したら、herokuのダッシュボードで右上の「Open App」をクリックするとデプロイしたアプリケーションが開きますので、動作を確認してください。

アプリケーションを開く
アプリケーションを開く



47 | Herokuの接続とPush】 << 【ホーム】 >> 【49 | 本番環境のコールバック





↓↓クリックして頂けると励みになります。