使用db migration - ruby​​插入一行

时间:2015-12-10 12:12:06

标签: ruby-on-rails ruby ruby-on-rails-3

我是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

这是正确/好吗?

任何人都可以帮我进行迁移,以正确/标准的方式插入单行。

2 个答案:

答案 0 :(得分:4)

您可以写如下:

class AddNewGrowingMethodToEnumValues < ActiveRecord::Migration
  enum_value = EnumValue.create(enum_type: 'growing', name: 'Organic', gdsn: '')
end

无需撰写created_atupdated_at。当我们运行此rails时,migration会为它们填充值。

答案 1 :(得分:0)

您不应使用迁移将数据插入数据库。迁移用于创建数据库结构。

如果必须插入准备好的数据,则应使用seeds.rb目录中的db/文件。

文件中有一个简短的解释,说明了如何使用它。

快乐编码:)