我已经声明使用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。
有人有任何想法吗?
答案 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:seed
是ActiveRecord
支持的内置功能。假设您正在使用没有ActiveRecord
的neo4jrb,则将无法再使用此命令来播种数据库。
但是,您可以使用seedbank宝石来恢复此能力。
它不像ActiveRecord
那样依赖seed_fu
,其他种子宝石也是如此。所以它将与neo4jrb一起正常工作。
过程非常简单。
db/seeds/
db/seeds/
目录下创建种子文件例如
#db/seeds/show.seeds.rb
Show.create(name: "Better Call Saul", producer: "Vince Gilligan")