我有一个Micropost
包含列user_id
和sender_id
(两个整数)的表。我刚刚添加了该sender_id
列,默认情况下,现有表行的值为 nil。作为一次性的事情,我希望将所有user_id
值复制并粘贴到sender_id
已经存在的行的列中。需要某种迁移?
问问题
164 次
3 回答
4
您可以从 rails 控制台执行此操作。
Micropost.update_all("sender_id = user_id")
于 2013-04-30T12:40:10.083 回答
2
我会在迁移中完成它,但是由于您已经运行它,您可以直接在 rails 控制台中执行它:
Micropost.all.each do |m|
m.update_attribute :sender_id, m.user_id
end
于 2013-04-30T10:34:08.490 回答
1
如果它是一次性的,我建议您只运行一个 sql 命令来执行此操作。
update micropost set sender_id = user_id;
如果您必须通过 rails 制作它,请在控制台中运行以下行,
ActiveRecord::Base.connection.execute "update micropost set sender_id = user_id"
于 2013-04-30T10:41:43.743 回答