手元のローカルのためのdatabase.ymlとci上で利用するdatabase.ymlは分けたという記事
認識
localで立てたdockerのmysqlと ciでimageで引っ張ってくるmysqlは当然ながら設定が違う。
できるだけ同じようにしておくことが望ましいと思うが、 異なるケースもあるはずなので、それぞれで対応させる必要がある。
手元の環境でrspecを実行する
portの指定やpasswordの指定がある。
docker-compose.ymlの設定をチェックしよう。 portやパスワードを要チェック。
ci
database.yml.ci
を用意して、
ciの途中でmvを実行させて上書きする。
run: mv config/database.yml.ci config/database.yml
portなどが異なっているか確認。
- image: circleci/mysql:5.7 environment: - MYSQL_ALLOW_EMPTY_PASSWORD: 'true' - MYSQL_ROOT_HOST: '%'
とかならパスワードはなくてとおる。
例
test: adapter: mysql2 encoding: utf8 pool: 5 username: 'root' host: '127.0.0.1' database: test_ci