rails migration - 使用约束更新列

时间:2013-05-23 13:09:40

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

如何添加新列并使用条件从另一个表的列更新其值?

我有两个名为user

的表
id: integer
name: string
preferred_communication_channel_id: integer  // stores the id of communication_channel

和表格communication_channel存储不同的通讯渠道,例如user

的电子邮件,电话等。
id: integer
user_id:  integer 
type: string

现在我需要在communication_mode

中添加新列user

并使用某些约束

更新communication_mode中的列communication_channel.type

这是 mysql版本的更新

update user as p
join communication_channel as cc 
on p.preferred_communication_channel_id = cc.id and p.id=cc.user_id and cc.type="Telephone" 
set p.communication_mode=3

我已创建迁移以添加新列,但如何在rails迁移中实现此查询?

如果我遗漏了任何内容,请纠正我

1 个答案:

答案 0 :(得分:0)

在迁移中,您只需编写execute "SELECT * FROM bananas"即可执行SQL!