2010-12-08 58 views

回答

27

不确定有关的任何现有耙的任务,但你可以尝试在轨控制台&运行这样粘贴的结果到您的seeds.rb文件

警告:脏&未经)

c = Category.all 

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

调整您可能具有的任何其他字段。

希望这会有所帮助。

+1

无法想象我怎么忘记这个黑客。非常感谢 – 2013-08-01 04:06:38

7

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

https://github.com/ludicast/yaml_db

2

老问题,我有一个基于一个新的@ Brian的回答。

如果你想保持整个行的是:

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"