Ruby on rails 在RubyonRails数据库中插入默认/初始数据的最佳实践是什么?

Ruby on rails 在RubyonRails数据库中插入默认/初始数据的最佳实践是什么?,ruby-on-rails,database,migration,Ruby On Rails,Database,Migration,我有一个新的rails应用程序和一个新的数据库,我想添加一些默认条目,比如带有默认密码的admin等 我应该如何进行 我知道两种可能性,都有缺点: 在迁移中使用ruby代码:User.create!(:email=>)admin@example.com“,:密码=>“abc”) 在迁移中使用SQL代码:将值(1,'admin@example.com","abc") 如果我在以后的版本中修改代码,第一种选择可能会失败。第二个有点依赖于DBMS 由于我不打算更改我的数据库,我会使用SQL代码,但

我有一个新的rails应用程序和一个新的数据库,我想添加一些默认条目,比如带有默认密码的admin等

我应该如何进行

我知道两种可能性,都有缺点:

  • 在迁移中使用ruby代码:User.create!(:email=>)admin@example.com“,:密码=>“abc”)
  • 在迁移中使用SQL代码:将值(1,'admin@example.com","abc")
如果我在以后的版本中修改代码,第一种选择可能会失败。第二个有点依赖于DBMS


由于我不打算更改我的数据库,我会使用SQL代码,但有更好的替代方案吗?

我个人会使用种子数据


这样做的一个优点是rakedb:setup在创建数据库后调用rakedb:seed。这非常适合新机器。

我个人会使用种子数据


这样做的一个优点是rakedb:setup在创建数据库后调用rakedb:seed。这非常适合新机器。

最好的方法是在
db/seeds.rb
中使用Ruby代码

该文件开头的注释是:

此文件应包含种子创建所需的所有记录 数据库及其默认值。然后可以使用 rake db:seed(或与db:setup一起创建)


这比将初始化代码放在迁移文件中更可取。

最好的方法是在
db/seeds.rb
中使用Ruby代码

该文件开头的注释是:

此文件应包含种子创建所需的所有记录 数据库及其默认值。然后可以使用 rake db:seed(或与db:setup一起创建)


这比将初始化代码放在迁移文件中更可取。

我使用seed\u-fu gem,我还没有遇到它不能为我处理的任何问题:


我使用的是seed_-fu gem,我还没有遇到任何它不能为我处理的事情: