迁移内部的Rails活动记录序列化

时间:2019-02-19 12:43:30

标签: ruby-on-rails ruby activerecord rails-activerecord

我正在进行迁移,在该迁移中,我将保存为红宝石哈希的数据从一个表移动到另一个表。该列保存为:text,在模型中,序列化定义为Hash。

我想将此列移到另一个表中,但是如果我删除了指定序列化类型的行(我想这样做,因为该字段将不再存在),那么迁移会将数据视为字符串。是否可以定义必须如何在迁移文件本身中序列化数据?这样将来从头开始的迁移就不会中断。

1 个答案:

答案 0 :(得分:1)

是的,只需在迁移文件中定义所有必需的信息:

# db/migrate/20190219114703_move_data_to_another_table.rb
class MyModel < ApplicationRecord
  # here you need only the line that specifies the serialisation type
end

class MoveDataToAnotherTable < ActiveRecord::Migration[5.1]
  def change
    # here goes the migration itself
  end
end