【Heroku】herokuを扱う際必須コマンド

# ✨herokuを扱う際必須コマンド

## アプリの変更をステージング＆コミットしてデプロイする

```ternimal:terminal
> git add -A

> git commit -m "コメント"

> git push heroku master
```

## heroku上でRailsデータベースをマイグレイト
```terminal:terminal
> heroku run rails db:migrate
```

## herokuのエラーログを追うには
```console:terminal
> heroku logs --tail

だったり

> heroku run rails console
```

## heroku上でのデータの確認とかカラムの確認とか
```console:terminal
> heroku run rails console
すると対話モードになるから、なったら
> User.all #Userモデルのレコードを全て見れる
> User.new #Userモデルのカラムを確認できる
> User.destroy_all #Userモデルのデータを全て削除できる
```

## herokuのデータベースのUp/Downをみたい時
```console:terminal
> heroku run rails db:migrate:status
```

## heroku上でマイグレーションファイルをDownにしたい時
```console:terminal
> heroku run rails db:migrate:down VERSION=マイグレーションID
```

## heroku上でデータベースのリセットをしたい時
```console:terminal
> heroku pg:reset DATABASE
```

## heroku loginしても何も動かん時
```console:terminal
> heroku login --interactive
```

## herokuをメンテナンスモードにする
```console:terminal
> heroku maintenance:on　# メンテナンスモードON

> heroku maintenance:off #メンテナンスモードOFF
```


# ✨おまけ：エラー解決方法集

## usr/bin/env 'ruby¥r'みたいなもんが出る
そんな時はbinフォルダの中のファイルたちを一個ずつ開いて
<img width="326" alt="スクリーンショット 2020-08-09 0.09.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411851/88c2773d-b8d7-27ed-8386-d05048521440.png">
ここをCRLFからLFにしよう
Herokuの文字コードがLFだからね


## こんなエラーが出たら.bundle/configファイルの中身は.gitignoreにして.bundleごと消そう

```terminal:terminal
> You have the `.bundle/config` file checked into your repository
remote:         It contains local state like the location of the installed bundle
remote:         as well as configured git local gems, and other settings that should
remote:        not be shared between multiple checkouts of a single repo. Please
remote:        remove the `.bundle/` folder from your repo and add it to your `.gitignore` file.
remote:        https://devcenter.heroku.com/articles/bundler-configuration
```

```terminal:terminal
> rm -r .bundle 
> vi .gitignore
そしてもともと.bundle/configに書かれていた内容を.gitignoreに
```

## heroku logs --tailしてこんなエラーが出る時

```terminal:terminal
> Must supply cloud_name in tag or in configuration
```

これは画像投稿のcloudinaryを使ってて、Herokuにcloudinaryを登録してない時に起こるエラー

```terminal:terminal
> heroku addons
↑これしてみて。多分cloudinaryが登録されてない
 
↓これで登録しよう(自分の.envのファイルの中身見て以下の＝以降は埋めてね)
> heroku config:set CLOUD_NAME=
> heroku config:set CLOUDINARY_API_KEY=
> heroku config:set CLOUDINARY_API_SECRET=

それでもうまくいかんかったら
・.envの位置がアプリディレクトリ直下じゃない(Gemfileとかと同じレベルじゃないとあかん)
・cloudinaryのメールで本登録してない
・そもそもimageカラム作れてない
・カラムはあるけどStrong Parameter作れてない
```

## 以下のようなエラーが出る時

```terminal:terminal
[2262533e-0eda-4363-80d5-dae786ab4f5d] ActionView::Template::Error (Webpacker can't find application in /app/public/packs/manifest.json. Possible causes:
2020-03-06T23:24:34.856297+00:00 app[web.1]: 1. You want to set webpacker.yml value of compile to true for your environment
2020-03-06T23:24:34.856298+00:00 app[web.1]: unless you are using the `webpack -w` or the webpack-dev-server.
2020-03-06T23:24:34.856298+00:00 app[web.1]: 2. webpack has not yet re-run to reflect updates.
2020-03-06T23:24:34.856299+00:00 app[web.1]: 3. You have misconfigured Webpacker's config/webpacker.yml file.
2020-03-06T23:24:34.856299+00:00 app[web.1]: 4. Your webpack configuration is not creating a manifest.
2020-03-06T23:24:34.856300+00:00 app[web.1]: Your manifest contains:
2020-03-06T23:24:34.856301+00:00 app[web.1]: {
2020-03-06T23:24:34.856302+00:00 app[web.1]: "application.js": "/packs/js/application-f09b38235916b51efe8a.js",
2020-03-06T23:24:34.856302+00:00 app[web.1]: "application.js.map": "/packs/js/application-f09b38235916b51efe8a.js.map",
2020-03-06T23:24:34.856302+00:00 app[web.1]: "entrypoints": {
2020-03-06T23:24:34.856303+00:00 app[web.1]: "application": {
2020-03-06T23:24:34.856306+00:00 app[web.1]: "js": [
2020-03-06T23:24:34.856307+00:00 app[web.1]: "/packs/js/application-f09b38235916b51efe8a.js"
2020-03-06T23:24:34.856307+00:00 app[web.1]: ],
```

これはうまくwebpackerが導入できていない証

```terminal:terminal
> rails webpacker:install
> rails webpacker:compile
して
> heroku run rails webpacker:install
> heroku run rails webpacker:compile
してあげたら治ることもある
```
それでも無理なら

```erb:views>layouts>application.html.erb
このファイルの中にある
javascript_pack_tagみたいな一行をコメントアウトしてあげて！
<%= javascript_pack_tag,~　%>
を↓
<%# javascript_pack_tag,~　%>
こんな感じに!
```