1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby on Rails】HerokuとDBの紐付け方法

Last updated at Posted at 2022-03-01

前提として

・HerokuはPostgreSQLを使用しているため、もし”gemfil”の”group :development do”配下でPostgreSQL以外を設定している場合はDBが使用出来ないので、注意下さい。
※例えば、”gemfil”の”group :development do” 配下に ”sqlite” を設定しまっている場合など。この場合は、”group :development, :test do”配下に移動するなど設定変更が必要。”gemfil”を変更したら、忘れず bundle installbundle update を実行して下さい。

参考にした記事

1. まず、HerokuとGitリポジトリを紐付ける

2. Heroku PostgresをRailsアプリで利用する手順(Rails)

1. まず、ログイン

% heroku login

2. Gitリポジトリとherokuが紐付けされているか確認

下記のコマンドでリポジトリ一覧にDBの設定をしたいherokuが表示されていない場合は次の手順 3. GitリポジトリとHerokuを紐付ける で紐付けを行います。

% git remote -v
originhttps://github.com/〜〜省略〜〜〜.git (fetch)
originhttps://github.com/〜〜省略〜〜〜.git (push)

3. GitリポジトリとHerokuを紐付ける。

※<>はコマンドではありません。
※アプリ名を忘れてしまった人はHerokuのWebブラウザからも確認できます。

% heroku git:remote -a <紐付けたいherokuのアプリ名>

4. HerokuのDBのURLが紐づいているか確認。

heroku configコマンドでDATABASE_URLを確認する。 
※URL設定が出来ていれば、下記のような表示がされると思います。

% heroku config
=== <アプリ名> Config Vars
DATABASE_URL:             postgres://<URL>
LANG:                     en_US.UTF-8
RACK_ENV:                 staging
RAILS_ENV:                production
RAILS_LOG_TO_STDOUT:      enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:          <省略>

Railsの「config/database.yml」というファイルで、HerokuのDBのURLを設定することで、アプリとHerokuのDBとが紐付されるようです。

5. デプロイしたアプリでマイグレーションを実施

% heroku run rake db:migrate

この後、HerokuのWeb画面からGUi操作で手動デプロイしてDBにアクセスした画面表示が可能になりました。

ちなみに、"git push"したら自動でデプロイ出来るようにHerokuで設定できるので、設定しておくとコマンド操作が省略出来るので楽です。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?