Rails迁移 - 整数列仅包含值“1”

时间:2012-07-24 15:55:40

标签: ruby-on-rails ruby-on-rails-3 migration

在rails项目中,我们正在尝试将数据从一个表迁移到另一个表。当我们创建原始表时,我们使用(代码段):

create_table :my_original_table do |t|
  #OTHER COLUMNS HERE
  t.integer :first_record_pub
end

然后,当我们创建要迁移到的第二个表时,我们使用:

create_table :my_second_table do |t|
  #OTHER COLUMNS HERE
  t.integer :my_pub
end

最后,当我们迁移实际数据时,我们使用:

original_value = MyOriginalTable.all
original_value.each do |s|
  new_first_record = MySecondTable.new
  #OTHER DATA MIGRATIONS HERE
  new_first_record.my_pub = s.first_record_pub
  new_first_record.save
end

我们迁移的所有其他列(我注释掉的那些)都完美迁移。但是,在迁移的my_second_table中,my_pub列有一些空白的条目(预期,原始表中的某些条目为空),其他条目的值只有“1”。由于某种原因,未正确迁移正确的first_record_pub值。

有没有人对如何解决这个问题有任何想法? 谢谢!

1 个答案:

答案 0 :(得分:1)

您是在创建新列,还是尝试在同一次迁移中将数据移入该列?如果是这样,您可能需要在创建列和向其移动数据之间调用reset_column_information,或者将数据的创建和移动分成两个单独的迁移。