我的数据库中有一些非常长的文本,它们似乎超过了PaperTrail的object
最大长度(对于:text
字段,它在MySQL上似乎是64kb。)
我认为超出此限制的速度非常快,因为PaperTrail始终将每个版本化字段的前后值存储在一个object
字段中。所以例如在对模型的1个文本字段进行版本控制时,文本字段不得超过其可能的最大长度的约1/2,否则已超出object
字段的限制。如果您有2个文本字段,则文本字段不得超过其最大长度的1/4。
那我该如何处理这个问题呢?我应该只为object
使用更大的字段类型吗?我找不到一个可以在Rails迁移中运行的东西,所以这感觉不对。
答案 0 :(得分:2)
我通过增加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
end