我一直在使用yaml_db gem将数据库转储到yaml,然后在需要时重新加载。但是,在一个新项目中,在rake db:load上我得到了错误消息:
NoMethodError: undefined method `load_documents' for Psych:Module
Did you mean? load_stream
/Users/user/.rvm/gems/ruby-2.5.0/gems/yaml_db-0.6.0/lib/yaml_db.rb:61:in `load_documents'
我提交的解决方案我最终想出了答案,但我对此并不满意。如果有人有更好的解决方案或建议比yaml_db gem更好的东西来转储和重新加载数据库,我很乐意倾听。
我在Ruby 2.5.0上运行Rails 5.1.4
答案 0 :(得分:3)
我提出的解决方案是将“心理”放在心理上。在yaml_db之前在我的Gemfile中创建gem并将其设置为早期版本:
gem 'psych', '~> 2.2.1'
gem 'yaml_db'
答案 1 :(得分:1)
此问题是由于load_documents
在Psych中deprecated导致的,最后在ruby 2.5中删除。有一个open PR on yaml_db可以修复此问题,因此希望未来的版本不会要求您使用此解决方法。
您当前的解决方案可能是目前最简单的解决方案(没有降级您的ruby版本,这可能是一个更糟糕的想法)。