我的数据库中有一些很长的文本,它们似乎超过了PaperTrail的object最大长度(在MySQL上,:text字段的最大长度似乎是64kb )。
我认为很快就会超过这个限制,因为PaperTrail总是在一个单独的object字段中存储每个版本化字段的前值和后值。因此,例如,当版本控制模型的1个文本字段时,文本字段不得超过其可能最大长度的~1/2,否则已经超出了object字段的限制。如果有2个文本字段,则文本字段不得超过其最大长度的~1/4。
那么我该如何处理这个问题呢?我应该为object简单地使用更大的字段类型吗?我就是找不到一个能在Rails迁移中工作的,所以这感觉不太对。
发布于 2016-12-12 23:49:59
我通过增加object列的限制修复了这个问题。
class ChangeVersionsObjectToMediumText < ActiveRecord::Migration
def change
# Needed because of this: http://stackoverflow.com/questions/41088654/papertrail-how-to-handle-data-too-long-for-column-object
change_column :versions, :object, :text, limit: 16.megabytes - 1
end
endhttps://stackoverflow.com/questions/41088654
复制相似问题