TL;DR
command
要素を使うとパラメータを渡せる。
- image: circleci/mysql:5.7-ram environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test command: ['--character-set-server=utf8mb4']
こんな感じにすると動く。
経緯
Invalid datetime format: 1292 Incorrect datetime value: ‘0000-00-00 00:00:00’
CI を導入したら、テストデータ登録でエラーが発生。
sql_mode の設定が原因であった。
現行の DB の sql_mode が空になっていたので、とりあえず設定を揃えることで回避できないかと考えた。
(本当は STRICT でも動くようにしたい)
MySQL
cnf ファイルを用意してもいいのだが、なんかサクッとやる方法ないかなと調べてみる。
MySQL のイメージ自体は --character-set-server=utf8mb4
みたいな感じで渡せるようだ。
CircleCI
設定のリファレンスを読むと、 command という設定があるのを発見。
値ありオプションの例がなかったけど、そのまま渡してあげれば大丈夫なようだ。
command: ['--sql-mode=']
これでよかったっぽい。