AWS Cloud9+heroku+Rails7でデプロイまで。

m1Macを買ってからずっとプログラミングをしていなかったが、久しぶりにやろう。

でもRailsでm1環境構築とかハマりそうで嫌だな。

せや、Cloud9・GitHub・Herokuあたりの省力構成でやってみるか。
詰まりどころはメモして、次回楽にいけるようにしておこう。

という記事。

# cloud9の設定注意点
Amazon Linux2を選ぶと、herokuにデプロイする際にpgがインストールできずに死ぬので
Ubuntuを選択すること。（死んだ）

# cloud9立てた後、Ruby・Railsのバージョンをアップデート、インストールしていく

2023/2/20時点での最新RubyとRailsを入れていく。
```
rvm get stable // はじめにrvmのバージョンをアップデート
rvm install ruby-3.2.1 //Rubyの3.2.1インストール
rvm --default use 3.2.1 // デフォルトでruby-3.2.1が使用できるようにする
rvm list //　デフォルトでruby-3.2.1が使用できるようになったか確認する

rails -v // 現在のrailsのバージョンを確認します　→ 多分入ってないはず
gem install rails -v 7.0.4.2
```

インストールまで参考
https://engineering.divx.co.jp/entry/2022/07/25/174742

# rails sでblocked hostされて繋がらない時の対処法

https://qiita.com/techpit-jp/items/7604c090407ee819b51a


# GitHubとcloud9を繋ぐ
cloud9上でSSH keyを作って、コピーして、GitHub上で登録。

その後、cloud9上からGitHubへpush。

https://kosuke-space.com/cloud9-github

# HerokuとGitHubを繋ぐ
heroku上でGitHubと繋いで、Auto Deploy設定をする。
最初のデプロイの時はcliよりデプロイボタンからいくのが分かりやすくて楽かな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145707/c0568bfc-9dc2-7520-421d-c0376430365f.png)

#cloud9上のGUIからコミットした時のエラー
`Make sure you configure your 'user.name' and 'user.email' in git.`のエラーが出たときの対処法。
下記コマンドを実行する。

```
git config --global user.name "ユーザー名" 
git config --global user.email "メールアドレス"
```
参考↓

https://qiita.com/s_iida/items/bc3f68490d6c67c5b9ea


# herokuではpostgresしか使えないので、productionではpgを使うように設定
このサイトの下の方を参考。
https://engineering.divx.co.jp/entry/2022/07/25/174742

#scaffoldでとりあえずDB含めて1個作成

```
rails g scaffold Osusume title:string shot_title:string
rails db:migrate //DBのマイグレート
```
rails sでローカルブラウザで見れることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145707/48875a60-425a-68ca-c132-a401903aa3f3.png)

# herokuへデプロイ。
ここではDBをmigrateしていないためApplicarion Errorが出る。

# cloud9へheroku cliのインストール

https://qiita.com/queq1890/items/1def659860416e2d90ff

# mfa（多要素認証）のせいでcloud9上でheroku cliへログインできない件の対処
https://qiita.com/WEByamori/items/4cab4be8ce336ed3e4d6

# db migrateまで

sqliteの設定になってしまっているので、postgresを使うようにgemfileとdatabase.ymlを変更

## gemfileの参考記事
【Herokuでデプロイしてネットにアプリを公開する】あたりを参考

https://engineering.divx.co.jp/entry/2022/07/25/174742

## database.ymlの参考記事

https://teratail.com/questions/284322

https://tex2e.github.io/blog/ruby/rails-on-heroku

socketエラー（postgresのdatabase作ってなかったので）が出たので、postgresのaddonを追加してmigrateする。
https://qiita.com/fujisawaqiita/items/5ba024e5dcc04dfc009b


```
heroku addons:create heroku-postgresql -a narou-susume2-staging
heroku run rails db:migrate -a narou-susume2-staging
```

# デプロイとDB作成まで済んで、正常動作まで行けた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145707/55c938bb-7006-7ad1-3092-91dace73fdc7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145707/0af589ab-dd55-1a89-a80f-b0ed4f1f2fec.png)

# 追記独自ドメイン対応
https://qiita.com/kenjikatooo/items/07c3d911210a4ca96781

↓上記だと`www`のURLのみに対応になってしまったので、こっちで対応。
https://qiita.com/shinshin86/items/87dd3adc6879fc35ea6e#cloudflare%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6ssl%E5%AF%BE%E5%BF%9C%E7%84%A1%E6%96%99%E3%83%97%E3%83%A9%E3%83%B3

# 追記2023/2/25 herokuで自動でrails db:migrateを走らせる
Readmeとかと同じ場所に `Procfile`を作成する。

中に下記を記述。
```
release: bundle exec rails db:migrate
```

参考

https://qiita.com/d0ne1s/items/736bdc0bc9debd74de1f

# 追記2023/2/27 rails7にbootstrap5を後で追加
参考記事
https://qiita.com/devzooiiooz/items/262f71e737f94738debf