STRICT_TRANS_TABLESに苦しめられた話
カラムのタイプをenumにしたら、データ投入時に怒られるようになってめっちゃ時間取られた件☠️
panic: Got unexpected error: failed to insert into foreign table: models: unable to insert into transactions: Error 1265: Data truncated for column 'transaction_type' at row 1 [recovered]
結論から言うと、STRICT_TRANS_TABLES のせい。
それまでは快調に動いていたので、いつなんの拍子でこの値がセットされたかは不明。
mysql> select @@global.sql_mode \G *************************** 1. row *************************** @@global.sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION 1 row in set (0.00 sec)
OFFったら、何事もなく動くようになった👿
mysql> set global sql_mode = ""; Query OK, 0 rows affected (0.00 sec)
追記
その後、設定が戻ってしまう事象が発生。
my.cnfの設定を変更して戻らないようにする。
$ sudo vi /etc/my.cnf # STRICT_TRANS_TABLES を消す $ mysql.server reload
確認
> SHOW VARIABLES LIKE 'sql_mode'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+