rake db:seed不能使用neo4j gem

时间:2014-12-07 20:53:41

标签: ruby-on-rails ruby-on-rails-4 neo4j neo4j.rb

我已经声明使用gem'neo4j'使用rails处理neo4j,我想在neo4j数据库中播种一些数据。但每当我尝试做rake db:seed时,它会说

rake aborted!
Don't know how to build task 'db:seed'

我使用 rake -T 检查了所有rake任务,并且没有 rake db:seed。

有人有任何想法吗?

4 个答案:

答案 0 :(得分:2)

Neo4j gem没有种子命令。您尝试使用的命令由ActiveRecord提供。不过,我们很乐意添加此功能,如果您愿意提供帮助,我们很乐意接受PR和/或为此过程做出贡献。目前,请在https://github.com/neo4jrb/neo4j/issues处打开一个问题,我们可以将其添加到路线图中。

答案 1 :(得分:1)

终于得到了解决方案。

lib / tasks 下创建一个 seed.rake 文件并输入代码

namespace :db do
  desc 'Load the seed data from db/seeds.rb'
  task :seed => :environment do
    seed_file = File.join(Rails.root, 'db', 'seeds.rb')
    load(seed_file) if File.exist?(seed_file)
  end
end

答案 2 :(得分:0)

检查应用程序根目录,是否有Rakefile?
创建一个名为“Rakefile”的文件并输入这些行

  

“#!/ usr / bin / env rake
  需要File.expand_path('../ config / application', FILE
  APP_NAME :: Application.load_tasks

答案 3 :(得分:0)

正如之前提到的,rails db:seedActiveRecord支持的内置功能。假设您正在使用没有ActiveRecord的neo4jrb,则将无法再使用此命令来播种数据库。

但是,您可以使用seedbank宝石来恢复此能力。

它不像ActiveRecord那样依赖seed_fu,其他种子宝石也是如此。所以它将与neo4jrb一起正常工作。

过程非常简单。

  1. 将种子库放入Gemfile并捆绑安装。
  2. 创建目录db/seeds/
  3. db/seeds/目录下创建种子文件

例如

#db/seeds/show.seeds.rb

Show.create(name: "Better Call Saul", producer: "Vince Gilligan")
  1. 运行rake db:seed:show