从已经在数据库中的数据创build种子文件

我正在使用Rails 3.0.3,并为我的“类别”表中的数据已经在数据库中,但要从中创build一个种子文件。 是否有任何耙子任务会从这张表中为我生成seeds.rb格式?

有一个名为seed_dump的gem,它将完成你想要的:

不知道任何现有的rake任务,但你可以尝试在rails控制台中运行这样的东西,并将结果粘贴到你的seeds.rb文件

警告:脏&未经testing)

 c = Category.all c.each do |cat| puts "Category.create(:name => '#{cat.name}')" end 

调整你可能有的任何额外的领域。

希望这可以帮助。

我用YamlDb从我的开发数据库转储数据,然后将其加载到另一台服务器。 它将数据转储到一个Yaml文件中,任何时候你都可以使用db:load将其推送到任何其他数据库服务器。

https://github.com/ludicast/yaml_db

老问题,我有一个新的基于@布赖恩的答案。

如果你想保持整个行:

 seedfile = File.open('db/seeds.rb', 'a') c = Category.all c.each do |cat| seedfile.write "Category.create(#{cat.attributes})\n" end seedfile.close 

如果只想写入一些属性,请将写入行更改为以下内容:

 seedfile.write "Category.create(#{cat.attributes.slice('attr1', 'attr2', ...})\n" 

或者,如果您希望除了某些属性之外的所有属性,例如时间戳:

 seedfile.write "Category.create(#{cat.attributes.except('created_at', 'updated_at')})\n"