Herokuで発生したエラーメモ
Herokuで出たエラーメモです。
書かないと忘れてしまいそうなのでメモとして書きます。
※解決できない場合のgitでの戻し方の方が長くなってしまいました…
1. リポジトリ無いみたいなエラーが出る
heroku fatal: repository ~~~ dose noe exist
リネームなどした場合に発生するかもしれません。
サイト名(アプリ名)リネームしたからかも
testappにするとしたら
$ heroku rename testapp
↓のように変更される
https://testapp.herokuapp.com
リポジトリ間違ってますので再設定しましょう。testapp
のところにサイト名入ります。
$ git remote set-url heroku https://git.heroku.com/testapp.git
heroku git push先確認
$ git remote -v
heroku https://git.heroku.com/sampleapp.git (fetch)
heroku https://git.heroku.com/sampleapp.git (push)
origin git@bitbucket.org:sampleuser/sampleapp.git (fetch)
origin git@bitbucket.org:sampleuser/sampleapp.git (push)
git push
やgit push heroku master
などでpushする先を確認できます。違っていたら
$ git remote set-url heroku https://git.heroku.com/testapp.git
のように変更。
2. 前のバージョンに戻してしまう
$ heroku rollback v6
バージョン確認
heroku releases
下記のような表示される
v7 Deploy a3525aaa samplemail@gmail.com 2019/01/19 15:52:18 +0000 (~ 5m ago)
v6 Deploy 44cf704a samplemail@gmail.com 2019/01/19 15:17:20 +0000 (~ 40m ago)
...
使うかわからないですけどバージョン確認して戻すことが可能です。確認してv7が最新のようだったらv6にしたら前の状態に戻せます。
3. 原因不明のApplicationError
とりあえずHeroku再起動してみましょう
$ heroku restart --app application_name
参考記事
https://qiita.com/Oakbow/items/1565922ddcdea0ce9ab5
4. Cloud9でherokuコマンド使えない
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
$ heroku --version
heroku --version
は確認です。バージョンが出たらOK
5.ActiveSupport::MessageEncryptor::InvalidMessage
Encrypted Credentialsでキーなどを秘匿化できる。
TwitterのAPIキーをベタで書くわけにもいかないので
素晴らしい記事を参考にやりました。Rails 5.2以降で使えるようになり、Encrypted secretsよりも推奨されている。
secrets.ymlや環境変数をRails 5.2のEncrypted Credentialsに移行する
解決手順
先ほどのリンク先で確認していただければいいですが
$ EDITOR=vim bin/rails credentials:edit
これを打つと秘匿情報ファイルと鍵ファイルを生成。vimで開く
私はtwitter API書いたので↓のように追記してます
twitter:
twitter_api_key: 1234567891011121314
twitter_api_secret: 345678910111213141516
# aws:
# access_key_id: 123
# secret_access_key: 345
# Used as the base secret for all MessageVerifiers in Rails, including the one $
secret_key_base: aaaaaaaaaaadddddddddddgggggggaaaaaaaaaaaaaaaaaaaaaaaaaa
蛇足でしょうがvimで保存して閉じるのはEsc
:
wq
です。
herokuはmaster.keyをコピーしておけばいいというわけにはいかないので、環境変数で設定。
$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
git addしてコミットして
$ git push heroku