LoginSignup
1
1

More than 3 years have passed since last update.

[Ruby on rails] Docker & Travis CIを使ってHerokuデプロイしたときのエラーまとめ

Posted at

概要

初めてDockerやTravis CIを使ってデプロイしたので流れとエラーをまとめておきます。
誰かの参考に慣れば・・・
Dockerの勉強はUdemyのこちらの動画で勉強しました。
初心者にもかなりわかりやすく説明されているのでお勧めです。
※この動画ではpostgesqlを使う方法が紹介されていますが、僕は開発環境も含めmysqlを使ってので違いなどもメモしておきます。

環境設定

・Docker
・rails 5.2

 大まかなデプロイ時の流れ

  1. TravisCIに登録し、GitHubと連携
  2. .tarvis.yml ファイルを書く
  3. Travis CIにビルド
  4. Herokuでアプリ作成
  5. Heroku と Travis CI に環境変数を設定する。

 2つのエラー

 mysql2が読み込まれない

Herokuにデプロイした際に、Build failedとなってしまいました。
ブラウザからHerokuのリポシトリーのActivityにあるBuild log を見ると以下のところでエラーになっているようでした。

LoadError: Could not load the 'mysql' Active Record adapter. Ensure that the adapter is spelled correctly in config/database.yml and that you've added the necessary adapter gem to your Gemfile.

これはブラウザのHerokuのリポジトリーのsettingsのConfig Varsを開き、

CLEARDB_DATABASE_URL : mysql://~~

となっているところを

CLEARDB_DATABASE_URL : mysql2://~~

と変更すると直ります。デフォルトではmysqlが書かれてしまうんですかね?

 DBがない!?

Herokuのアプリの画面に移動した際、We're sorry, but something went wrong.というエラー表示がされてしまいました。

これはローカルからHerokuへとアクセスし

$ heroku logs -t

でログを見てみると

ActiveRecord::StatementInvalid (Mysql2::Error: Table 'heroku_067b02b8d8fb0b9.users' doesn't exist: SHOW FULL FIELDS FROM `users`):

となっていて、DBができていないようなので、マイグレーションして解決しました。

$ heroku run rails db:migrate

※ travis.yml ファイルにデプロイの際に、マイグレーションするように書いたはずなんだけどなー。なぜかうまく行っていなかったですね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1