我们需要为一些新添加的表添加更多种子数据到我们的 Rails 项目的“版本 100”。
但是,如果我们简单地将它添加到seeds.rb 中并重新运行rake db:seed
命令,它当然会重新添加原始种子数据,复制它。
因此,如果您已经将种子数据添加到 seeds.rb 中,例如,TableOne ...
我们如何在开发的后期阶段为 TableTwo 和 TableThree 增量添加种子数据?
我希望我可以简单地创建一个新的 seeds_two.rb 文件并运行 rake db:seeds_two
但这给出了一个错误 不知道如何构建任务“db:seeds_two”
所以看起来只能使用“seeds.rb”。
人们如何维护对种子数据的增量添加?
最佳答案
您可以重新使用seed
任务,但将其设为idempotent .
要使种子幂等,只需在执行命令之前检查条件是否存在。一个例子:你想创建一个新的管理员用户吗?
User.find_or_create_by_username(:username => "admin")
代替
User.create(:username => "admin")
但是,seed
应该用于在创建项目时填充您的数据库。如果您想在应用程序的生命周期内执行复杂的数据播种,只需创建一个新的 rake 任务,执行它然后将其删除。
关于ruby-on-rails - 有没有办法拥有多个 seeds.rb 文件?任何类型的 'versioning' 用于种子数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130334/