我有一个链接数据库,这些链接都指向特定网站,但该网站上有不同的网页。那么网站的域名发生了变化,我需要更新我的数据库以反映这一变化。我只需要更改域名,链接的其余部分工作正常。
我的问题是,我可以使用rails迁移来执行此操作吗?要编辑列中的所有字段并更新它们?这会是什么样的?
我知道还有其他方法可以解决这个问题,但我想探索一下使用rails迁移的选项。
提前致谢!
答案 0 :(得分:1)
当然,您有两种选择。 1)您可以像迁移模型一样在迁移中编写ActiveRecord代码,例如:
class ChangeDomainName < ActiveRecord::Migration
def self.up
YourModel.update_all "url = REPLACE(url, 'www.old-domain-name.com', 'www.new-domain-name.com')"
end
def self.down
# ...
end
end
在这种情况下要记住的一件事是,如果你正在改变,例如在更改表之后以及在调用ActiveRecord方法之前,update_all
之前需要执行的同一迁移中的列名称或类型。
2)您可以将原始SQL与“execute”方法一起使用:
YourModel.reset_column_information
我个人更喜欢第一种方法。