CircleCiでmysqlのバージョンが低い時に出るClient::SECURE_CONNECTION
本番環境とSTG環境
具体的なエラー
circleCiのconsole
rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'mysql2'.
Gem Load Error is: uninitialized constant Mysql2::Client::SECURE_CONNECTION
gemのmysql2を使っている場合バージョンを固定しましょう。
いろいろとこのエラーの解決方法がネットにありますが全部無駄でした。
なので最終的にGemのバージョンを固定する事にしました
- 基本的にはGemfile.lockが固定しているがcircle ciは専用のmysqlがあるらしく勝手に書き換える
- その時にlockファイルのバージョンを参照してくれていないらしい
- Gemfile自体に指定しましょう。
以下例になります(バージョンが古いのでご注意ください。)
Gemfile
gem 'mysql2' , '0.3.17'
ここにバージョン一覧がありますのでサービスのバージョンに合わせてご利用を。
https://rubygems.org/gems/mysql2/versions