我正在使用Rails 3.0.3并且已经在数据库中拥有我的“类别”表的数据,但是想要从中创建种子文件 . 是否有任何rake任务将从此表中为我生成seeds.rb格式?
有一个名为 seed_dump 的宝石,它可以完全按照您的要求做到:
seed_dump
https://github.com/zenprogrammer/seed_dump
http://rubygems.org/gems/seed_dump
不确定任何现有的rake任务,但你可以尝试在rails控制台中运行这样的东西并将结果粘贴到seeds.rb文件中
( warning: 脏和未经测试)
c = Category.all c.each do |cat| puts "Category.create(:name => '#{cat.name}')" end
调整您可能拥有的任何其他字段 .
希望这可以帮助 .
我已经使用YamlDb从我的开发数据库转储数据,然后将其加载到另一台服务器 . 它将数据转储到Yaml文件,该文件将在您希望使用db:load将其推送到任何其他数据库服务器时使用 .
https://github.com/ludicast/yaml_db
老问题,我有一个基于@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"
4 回答
有一个名为
seed_dump
的宝石,它可以完全按照您的要求做到:https://github.com/zenprogrammer/seed_dump
http://rubygems.org/gems/seed_dump
不确定任何现有的rake任务,但你可以尝试在rails控制台中运行这样的东西并将结果粘贴到seeds.rb文件中
( warning: 脏和未经测试)
调整您可能拥有的任何其他字段 .
希望这可以帮助 .
我已经使用YamlDb从我的开发数据库转储数据,然后将其加载到另一台服务器 . 它将数据转储到Yaml文件,该文件将在您希望使用db:load将其推送到任何其他数据库服务器时使用 .
https://github.com/ludicast/yaml_db
老问题,我有一个基于@Brian答案的新问题 .
如果要按原样保留整行:
如果只想写一些属性,请将写行更改为以下内容:
或者,如果您希望除了某些属性之外的所有属性,例如时间戳: