我是ruby on rails的新手。我需要使用db migration在现有表中插入一行,该表已经有超过200行数据,我还需要再插入一行。
我已经创建了一个迁移文件,如下所示,
class AddNewGrowingMethodToEnumValues < ActiveRecord::Migration
execute "INSERT INTO enum_values (enum_type, name, gdsn, created_at, updated_at) VALUES ('growing', 'Organic', '', now(), now())"
end
这是正确/好吗?
任何人都可以帮我进行迁移,以正确/标准的方式插入单行。
答案 0 :(得分:4)
您可以写如下:
class AddNewGrowingMethodToEnumValues < ActiveRecord::Migration
enum_value = EnumValue.create(enum_type: 'growing', name: 'Organic', gdsn: '')
end
无需撰写created_at
和updated_at
。当我们运行此rails
时,migration
会为它们填充值。
答案 1 :(得分:0)
您不应使用迁移将数据插入数据库。迁移用于创建数据库结构。
如果必须插入准备好的数据,则应使用seeds.rb
目录中的db/
文件。
文件中有一个简短的解释,说明了如何使用它。
快乐编码:)