Принятый ответ потрясающий, он правильно объясняет разницу между строкой и текстом (в основном это предельный размер в базе данных, но есть несколько других ошибок), но я хотел бы указать на небольшую проблему, которая заставила меня пройти через неготак как этот ответ не полностью сделал это для меня.
Максимальный размер : limit => 1 до 4294967296 не работал точно так, как положено, мне нужно было перейти -1 с этогомаксимальный размерЯ храню большие двоичные объекты JSON, и иногда они могут быть сумасшедшими.
Вот моя миграция с большим значением на месте со значением, на которое MySQL не жалуется.
Обратите внимание на 5 в конце лимита вместо 6
class ChangeUserSyncRecordDetailsToText < ActiveRecord::Migration[5.1]
def up
change_column :user_sync_records, :details, :text, :limit => 4294967295
end
def down
change_column :user_sync_records, :details, :string, :limit => 1000
end
end