从数据库中已有的数据创建种子文件
我正在使用 Rails 3.0.3,并且数据库中已有“类别”表的数据,但想从中创建一个种子文件。是否有任何 rake 任务可以从该表中为我生成 seeds.rb 格式?
I'm using Rails 3.0.3 and have data for my "categories" table already in the database, but want to create a seed file from it. Is there any rake task that will generate the seeds.rb format for me from this table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
有一个名为
seed_dump
的 gem,它将完全满足您的需求:There is a gem called
seed_dump
, which will do exactly what you want:不确定是否有任何现有的 rake 任务,但您可以尝试在 Rails 控制台中运行类似的任务将结果粘贴到您的 seeds.rb 文件中
(警告:脏且未经测试)
根据您可能拥有的任何其他字段进行调整。
希望这有帮助。
Not sure about any existing rake tasks, but you can try running something like this in the rails console & paste the results into your seeds.rb file
(warning: dirty & untested)
Adjust for any additional fields you may have.
Hope this helps.
老问题,我根据@Brian 的回答提出了一个新问题。
如果您想保持整行不变:
如果您只想写入一些属性,请将写入行更改为以下内容:
或者,如果您希望除了某些属性(例如时间戳)之外的所有属性:
Old question, I have a new one based on @Brian's answer.
If you want to keep the entire row as is:
If you want to only write some attributes, change the write line to the following:
Or, if you wish all the attributes except some, for example timestamps:
我使用 YamlDb 从我的开发数据库转储数据,然后将其加载到另一台服务器。它将数据转储到 Yaml 文件中,每当您想要使用 db:load 将其推送到任何其他数据库服务器时,都会使用该文件。
https://github.com/ludicast/yaml_db
I've used YamlDb to dump data from my development db and then load it up to another server. It dumps the data to a Yaml file, which will be used any time you want to use db:load to push it up to any other db server.
https://github.com/ludicast/yaml_db