記事概要
RenderでDBにシード値を適用する方法について説明する。
言語やフレームワーク
使用技術 | |
---|---|
フロントエンド | HTML |
バックエンド | Ruby 3.2.0 Ruby on Rails 7.0.8.6 |
データベース | PostgreSQL |
インフラ | Render |
API | - |
その他 | - |
前提
- db/seeds.rbにシード値を作成するように記述されている
- Renderにアカウント登録している
手順①(事前準備)
- ローカルPCにPostgreSQLを登録する
- ターミナルで下記を実行する
% brew install postgresql@14
- PostgreSQLを正常にインストールできたことを確認する
% psql --version # => psql (PostgreSQL) 14.5 (Homebrew) のように、バージョンが表示されれば正常
- ターミナルで下記を実行する
- アプリケーションにライブラリを追加する
- GemfileにGemを追記
# 最終行に、下記(group ~ end)を記述する group :production do gem 'pg' end
- ターミナルで下記を実行し、Gemをインストール
% bundle install
- GemfileにGemを追記
- Render用の設定ファイルを追加する
-
bin
フォルダにrender-build.sh
ファイルを手動作成 - 下記を記述
#!/usr/bin/env bash # exit on error set -o errexit bundle install bundle exec rake assets:precompile bundle exec rake assets:clean bundle exec rake db:migrate bundle exec rails db:seed
-
- DB設定を変更する
- config/database.ymlのDB名を変更する
development: # 中略 database: [アプリ名]_development test: # 中略 database: [アプリ名]_test
- config/database.ymlのDB名を変更する
- Gemfile.lockの設定を変更するために、ターミナルで実行
% bundle lock --add-platform x86_64-linux
- アプリをクローンした場合、秘密情報管理用のファイルを作成する
- GitHubにコードをプッシュする
手順②(DB作成)
-
Renderにログイン
-
+ New > PostgreSQL を選択
-
下記を入力 or 選択する
項目名 入力値 Name <任意のDB名> Region Ohio Instance Type Free -
「Create DataBase」をクリック
-
「Status」が
Available
に変更されると、DB作成が完了 -
Internal Database URL
の値をコピーし、メモなどに保管する
手順③(アプリケーション作成)
-
Renderでアプリを作成
-
+ New > Web Service を選択
-
GitHubのリポジトリを選択
-
「Connect」をクリック
-
下記を入力 or 選択する
項目名 入力値 Name <任意のアプリ名 ※'_'は使用しないこと> Region Ohio Build Command ./bin/render-build.sh Start Command bundle exec puma -C config/puma.rb Instance Type Free -
環境変数を設定する
環境変数名 入力値 RAILS_MASTER_KEY < config/master.keyの値> DATABASE_URL <「Internal Database URL」の値> -
「Deploy Web Service」をクリック
-
「Status」が
Deployed
に変更されると、アプリ作成が完了
備考
-
render-build.sh
ファイルのbundle exec rails db:seed
を記述を削除すると、シード値適用が実行されない - TablePlusを使用すると、DBの内容を確認できる