0

在一个 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 值未正确迁移。

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

4

1 回答 1

1

Are you both creating a new column, and trying to move data into that column in the same migration? If so you, may either need to make a call to reset_column_information between creating the column and moving data to it, OR, separate the creation and moving of data into two separate migrations.

于 2012-07-24T16:01:26.780 回答