Railsのデータベースについて(初心者)
Railsのデータベースの本番環境への導入がよく分かっていません。
①例えばdeviseをローカル環境で使えるようにするとdevelop環境のローカルPC上にデータベースのデータテーブルが作られますが、実際にHerokuで運用しようとするとHeroku上のpostgresにdb:migrateで再設定する必要があるように思います。
herokuコマンドでdb:migrateをして運用するのがベストプラクティスなのでしょうか?
同様にRailsをVPSで運用する場合はさらに分かりません。
②例えばConohaのVPSにRailsのアプリケーションを載せたいとします。
その場合は、アプリケーションに変更を加えるたびにrails sを切って、db:migrateなどを実行して、運用しないといけないのでしょうか?
ほぼ独学で学習しており、これらの点が最大に分からない所です。
運用はHerokuまたはConohaを考えています。
月の予算が1000円程度の中規模程度の個人アプリケーションの開発です。
MENTAにログインしたところ、つぶやき機能が出来ましたので利用させて頂きました。
(こんなに踏み込んだ質問をして良いのでしょうか?)
どのくらい反応があるか等、拝見したいと思いますm( )m
良さそうな回答者様がいらっしゃいましたらメンターとしての依頼も検討したいと思います。
どうぞよろしくお願いいたします。
自己紹介
はじめまして、メンターの谷雄治と申します。
個人開発メンタリングを中心に、それらに必要なスキルやノウハウのメンタリングを行っております。
Herokuでもdb:migrateが必要か、これがベストプラクティスか
そうですね、初回以降、Herokuへデプロイした時はあくまでもソースの更新だけになりますのでdb:migrateは必要になります。
最近だと「Release Phase」というものを使ってdb:migrateを自動で行う設定をするのがベストプラクティスになっているかも知れません。以下の記事や公式ドキュメントが参考になりますので一度参照してみることをお勧めします。
Herokuでデプロイと同時にrake db:migrateを実行する
https://qiita.com/m_nakamura145/items/2eafb2dc9f8a459670b6
Release Phase
https://devcenter.heroku.com/articles/release-phase
Conohaにデプロイする場合
HerokuなどのPaaSではなく自前で用意したIaaSにRailsアプリをデプロイする場合、capistranoというデプロイツールを使うことが多いです。
これだと設定記述でdb:migrateやrails server(puma)の再起動なども設定次第で自動で行ってくれます。
ただし、導入や設定が結構ややこしいので初学だと学習コストが高く、色々とハマる可能性がありますのでご注意ください。
Capistrano で Rails アプリケーションの自動デプロイ
https://qiita.com/Salinger/items/4ee4f3c5ebd5227196c0
私のプランについて
私のプランではRuby/PHP/Javaを中心としたWebサービスの個人開発を中心にメンタリングしています。
もしご興味がありましたら一度ご覧いただければ幸いです。
【初心者OK!】あなたの個人開発を全力でサポートします!【事前相談可!】【モチベーション維持】【マネタイズ】【プログラミングサポート】
https://menta.work/plan/1128