假设我有一个名为fruit的db表,如下所示:
id name
1 ““
2 “"
3 ““
4 ““
5 ""
6 melon
在这种情况下,我需要编写一个迁移来将空字符串更改为null,而不会影响melon
。
它会成为这些界限吗?
def change
update_column fruits, :name, null if :name => ""
end
我想是非常基本的东西,但我有点卡在这里。 这里最好的方法是什么?
答案 0 :(得分:0)
在控制台开发和生产中:
Fruit.all.each do |fruit|
if fruit.name == ""
fruit.name = nil
fruit.save
end
end
答案 1 :(得分:0)
使用normal命令生成迁移;
rails g migration xxxxx
然后添加:
def change
execute "UPDATE fruits SET name = NULL WHERE name = '' "
end
答案 2 :(得分:0)
Fruit.where(name: "").update_all(name: nil)
rails console,migration,您可以在任何地方执行它。您并不真正需要迁移,但如果想要保持一致,请将其添加到迁移