カラムを追加する作業があった。
rails g migrationしてrake db:migrateしたら終わりー、と思ったら、
Annotated (8): ...
8!?今モデル1つ変えただけなんだけど…
$ git diff
--- a/db/schema.rb
+++ b/db/schema.rb
-    t.text     "title",         limit: 65535
-    t.text     "url",           limit: 65535
+    t.text     "title",         limit: 16777215
+    t.text     "url",           limit: 16777215
こんな感じで、limit指定してないtextカラムが軒並み変わってる。
$ rails db   
mysql> SHOW COLUMNS FROM tasks;
+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| title         | mediumtext   | YES  |     | NULL    |                |
| url           | mediumtext   | YES  |     | NULL    |                |
データベース上もそうなってる。
ちょっと調べたら、
ということらしい。
意図しない型の変換に注意!
CONVERT TO CHARACTER SET を用いた場合、型が自動的に変換されてしまうことがあります。
たとえば、utf-8 から utf8mb4 に変更する場合は、text 型のカラムは自動的に mediamtext に変換されます。
確かに、少し前にutf8mb4に変えました。そしてそれはmigrationでやらなかったのでannotateも実行されておらず、今になって気づいたわけです…。