Spring Security Core plugin をMySQLで試した時のエラー
Grails Spring Security Core Plugin をMySQL5.5.27 で試したところ、下記のエラーが発生。
| Error 2013-04-29 11:11:59,426 [localhost-startStop-1] ERROR hbm2ddl.SchemaUpdate - Unsuccessful: create table authority (id bigint not null auto_increment, version bigint not null, authority varchar(255) not null unique, primary key (id))
| Error 2013-04-29 11:11:59,427 [localhost-startStop-1] ERROR hbm2ddl.SchemaUpdate - Specified key was too long; max key length is 767 bytes
原因:ユニークキーに指定したカラムの桁数オーバー
データ型がvarchar(255)、照合順序がutf8mb4_general_ci のカラムをユニークキーにしようとしたため、255×4=1020byteとなり桁あふれ。
対策:初期テーブル生成時はunique制約をドメインから外してテーブルを作成。後からDBとソースを修正。フィールドの文字コードを2byte文字にして、ユニークキーに設定した。
対策については下記のエントリが参考になりました。