Ruby on rails 在Rails应用程序中生成种子数据同时保留自动生成的主ID的最佳方法?

Ruby on rails 在Rails应用程序中生成种子数据同时保留自动生成的主ID的最佳方法?,ruby-on-rails,activerecord,ruby-on-rails-4,rails-migrations,Ruby On Rails,Activerecord,Ruby On Rails 4,Rails Migrations,我正在开发Rails 4应用程序。我们有一个seed.rb文件,其中包含我们团队使用的一些基本数据,例如: Country.delete_all Country.create!(name: "United States", code: "US", description: "") 每隔一段时间,我们需要向该文件添加更多种子数据。但是,运行rakedb:seed将首先擦除引用表中的记录,然后再将它们重新插入。由于这些表中的ID列是自动生成的,因此旧ID将丢失。因此,在某人的本地开发环境中,很多个

我正在开发Rails 4应用程序。我们有一个seed.rb文件,其中包含我们团队使用的一些基本数据,例如:

Country.delete_all
Country.create!(name: "United States", code: "US", description: "")
每隔一段时间,我们需要向该文件添加更多种子数据。但是,运行rakedb:seed将首先擦除引用表中的记录,然后再将它们重新插入。由于这些表中的ID列是自动生成的,因此旧ID将丢失。因此,在某人的本地开发环境中,很多个人测试数据都会失效,因为外键被破坏了。从seed.rb中的每个模型中删除.delete_all可以作为解决方案通过,但运行db:seed将输出大量错误

因此,我正在寻找一种最佳实践,在生成种子数据的同时保留我的案例中的旧主键ID


谢谢

如果不需要先删除它们,可以使用

Country.wherename:United.first\u或\u create


这意味着只有当它不存在时才会创建它,因此只会创建新的种子,如果不需要先删除旧记录,就可以使用旧记录

Country.wherename:United.first\u或\u create


这意味着只有当它不存在时才会创建它,因此只会创建新种子,而旧记录保持不变

如果要向其中添加新值,请将它们添加到第一个或创建国家/地区。wherename:United.first_或_createcode:US,描述:如果要向其中添加新值,请将其添加到第一个或创建国家/地区。wherename:美国。first_或_createcode:美国,描述: