✨herokuを扱う際必須コマンド
アプリの変更をステージング&コミットしてデプロイする
terminal
> git add -A
> git commit -m "コメント"
> git push heroku master
heroku上でRailsデータベースをマイグレイト
terminal
> heroku run rails db:migrate
herokuのエラーログを追うには
terminal
> heroku logs --tail
だったり
> heroku run rails console
heroku上でのデータの確認とかカラムの確認とか
terminal
> heroku run rails console
すると対話モードになるから、なったら
> User.all #Userモデルのレコードを全て見れる
> User.new #Userモデルのカラムを確認できる
> User.destroy_all #Userモデルのデータを全て削除できる
herokuのデータベースのUp/Downをみたい時
terminal
> heroku run rails db:migrate:status
heroku上でマイグレーションファイルをDownにしたい時
terminal
> heroku run rails db:migrate:down VERSION=マイグレーションID
heroku上でデータベースのリセットをしたい時
terminal
> heroku pg:reset DATABASE
heroku loginしても何も動かん時
terminal
> heroku login --interactive
herokuをメンテナンスモードにする
terminal
> heroku maintenance:on # メンテナンスモードON
> heroku maintenance:off #メンテナンスモードOFF
✨おまけ:エラー解決方法集
usr/bin/env 'ruby¥r'みたいなもんが出る
そんな時はbinフォルダの中のファイルたちを一個ずつ開いて
ここをCRLFからLFにしよう
Herokuの文字コードがLFだからね
こんなエラーが出たら.bundle/configファイルの中身は.gitignoreにして.bundleごと消そう
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
> rm -r .bundle
> vi .gitignore
そしてもともと.bundle/configに書かれていた内容を.gitignoreに
heroku logs --tailしてこんなエラーが出る時
terminal
> Must supply cloud_name in tag or in configuration
これは画像投稿のcloudinaryを使ってて、Herokuにcloudinaryを登録してない時に起こるエラー
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
[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
> rails webpacker:install
> rails webpacker:compile
して
> heroku run rails webpacker:install
> heroku run rails webpacker:compile
してあげたら治ることもある
それでも無理なら
views>layouts>application.html.erb
このファイルの中にある
javascript_pack_tagみたいな一行をコメントアウトしてあげて!
<%= javascript_pack_tag,~ %>
を↓
<%# javascript_pack_tag,~ %>
こんな感じに!