从已经在数据库中的数据创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将其推送到任何其他数据库服务器。
老问题,我有一个新的基于@布赖恩的答案。
如果你想保持整个行:
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"