Herokuにデプロイできない!git push heroku masterで出たエラー解決方法

プログラミング

こんにちは、つかりーんです。

作成したRailsアプリをデプロイするという最後の最後になってエラーにはまりました。

あとはこのコードを打ち込んだらデプロイできる!

よっしゃぁぁああ!

と思ってHerokuに入れる時のコードを打ち込むと

なんかrejectって書いてる!?ちゃんとできてない気がする!?

はい、出来ていませんでした。

この文章をググってたくさん記事を読んだけれど解決できず・・・

ここ以外に解決の糸口があったので備忘録として残します。

この記事はMySQLを使ったRailsアプリをHerokuへデプロイしたい人、デプロイ時に同じようなエラーが表示される人向けに書いています
 

原因はデータベースの設定だった

上のエラー文はエラーが出てるよ!ということを教えてくれてるだけで、原因を読み解くことができません。

全体はながーい文章になりますが、ちゃんと読んでエラー個所を探しましょう

私は2箇所エラーが表示されていました。

意味は両方とも「pgが入ってないからGemfileに入れてね!」ということだと思いますが・・・

pg=PostgreSQLを入れる?!

私はアプリ作成時のデータベースはMySQLを使っていたので、これは信じたくない解釈でした。

ですが、結局はpgのインストールが解決方法ではなくてデータベースの設定の問題であることがわかりました!

解決法

1. heroku configでデータベースが何になっているか確認

$ heroku configで一度データベースの設定を確認してみてください!ClearDBアドオンでMySQLに変えてるはずだと思い込んだことが、私の今回の敗因でしたので・・・

ここのDATABASE_URLがpostgreになってるので、先ほどのようなエラーが出ていることがわかりました。

2. DATABASE_URLがpostgresとなっているのをmysql2に変更する

DATABASE_URLを1行目のCLEARDB_DATABASE_URLと同じアドレスに変更します。

このコマンドを実行した後に

これで変更完了です!

3. heroku configで確認

もう一度$ heroku configで確認してみましょう!

できた!!

Herokuの初期設定はPostgreSQLになっている

Herokuでは初期設定でデータベースがPostgreSQLになっています。

なので、ClearDB(MySQLに相当するもの)に変更する必要があります。

★変更の仕方★

ここで表示された~~~部分が自分のデータベース情報になります。

これをmysql2://~~~~に変更すればOKです。

DATABASE_URLが変更されていれば無事完了です。

ただ、私はこれをやったにも関わらずDATABASE_URLがpostgreになってました。

その場合は先程のように addons:destroy で変更してみてください!

どしてもわからないときは

この方法を試してみたけどやっぱりできない・・・と行き詰ってしまったときは、誰かに聞くというのも手です。

「エンジニアの知り合いなんていないんだけど」という方にお勧めのがMENTA

MENTAの使い方はこの記事にまとめています。

プロの手を借りて、今のもやもやを一刻も早く晴らしてしまいましょう!

終わりに

今回のエラーを通して、エラー文をちゃんと読むことデータベースがMySQLになっているかを確認することを学びました。

アプリ制作はたくさんの知識が必要なので難しいです^^;

ではまた!

コメント

タイトルとURLをコピーしました