デプロイ後の流れ
デプロイ後に開発環境で行なった変更を、デプロイしたアプリケーションに取り込む方法がいつもわからなくなるため、メモ代わりにまとめました。
❶EC2へSSHでログインする
username:~/environment $ ssh -i ~/.ssh/practice-aws.pem ec2-user@xx.xx.xx.xx
@xx.xx.xx.xxはEC2のパブリックIPアドレス
❷アプリケーションへ移動
[ec2-user@ip-xx-xx-xx-xx ~]$ cd アプリケーション名
❸ GitHubからpull
最新のコードを取り込むためにGitHubからpullします。
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$git pull origin main
❹変更したフォルダーによる運用方法
Gemfileを変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. 以下コマンドを実行
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle install --path vendor/bundle --without test development
CSS/JavaScript/画像を変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. プリコンパイルを行う
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle exec rails assets:precompile RAILS_ENV=production
マイグレーションファイルを変更した場合
1. ローカルからリモートリポジトリへpush
2. SSHでEC2へ接続
3. EC2上でアプリケーションへ移動
4. git pullする
5. マイグレーションを行う
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ bundle exec rails db:migrate RAILS_ENV=production
❺アプリケーションサーバー(Puma)を起動
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails s -e production
アプリケーションサーバー(Puma)を停止するとき
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ kill $(cat tmp/pids/puma.pid)
本番環境でデータベースをリセットしたいとき
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:drop
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails db:create RAILS_ENV=production
[ec2-user@ip-xx-xx-xx-xx アプリケーション名]$ rails db:migrate RAILS_ENV=production