使用父子关联将数据从一个表迁移到另一个表

时间:2013-11-05 08:33:25

标签: mysql ruby-on-rails ruby

我正在将数据从表A迁移到表B.

表A包含字段idparent_idtitlecredit

表B包含字段idparent_idtitlecredit。其中id是自动增量字段。

表A具有自我关联,其中parent_id指的是表A中的一行。

从rake任务我需要将数据从表A迁移到表B.

表A中的样本数据:

id | parent_id | title | credit

12 | nil       | ABC   | 1

13 | 12        | XYZ   | 1

14 | 12        | PQR   | 0

15 | 13        | NOP   | 1

将数据迁移到表B后,它应该是这样的:

id | parent_id | title | credit

1 | nil       | ABC   | 1

2 | 1         | XYZ   | 1

3 | 1         | PQR   | 0

4 | 2         | NOP   | 1

使用ruby脚本将数据从表A迁移到表B时,我可以使用新的title更新creditid。如何更新parent_id

感谢您的支持。

2 个答案:

答案 0 :(得分:0)

创建后更新父ID。像这样的东西,

a = A.all
a.each { |v|
B.create!({parent_id: v.parent_id,title: v.title,credit: v.credit})
A.update_all({parent_id: B.last.id},{parent_id: v.parent_id})
}

答案 1 :(得分:0)

我想你也需要更新你的ID。

table_b_obj.id = table_a_obj.id
table_b_obj.save!
table_b_obj.reload