ActiveRecord::StatementInvalid: Mysql2::Error: Specified key was too long; max key length is 767 bytes
と言われた、確かにCircleCIでこれやったことなかったかも。
circle.ymlの中でsudo使えるので、以下のような設定を書いた。
dependencies:
pre:
- echo '[mysqld]' | sudo sh -c 'cat >> /etc/mysql/my.cnf'
- echo 'innodb_file_format=Barracuda' | sudo sh -c 'cat >> /etc/mysql/my.cnf'
- echo 'innodb_file_per_table=1' | sudo sh -c 'cat >> /etc/mysql/my.cnf'
- echo 'innodb_large_prefix=1' | sudo sh -c 'cat >> /etc/mysql/my.cnf'
- sudo service mysql restart
[mysqld]
はなくてもいい(CircleCIデフォルトの/etc/mysql/my.cnf
で[mysqld]
セクションが最後に来ているため)けど今後に備えて。
;
で区切って1行にした方が、build画面が汚れないけど、ここでは保守性を重視。