SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

localはdockerでMySQLでCircleCIでもRspecを実行する時の注意点


手元のローカルのための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

ref

https://qiita.com/AK4747471/items/b2161784065f21cd1645