我已经说过使用 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。
有人有什么主意吗?
我已经说过使用 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。
有人有什么主意吗?
Neo4j gem 没有种子命令。您尝试使用的命令由 ActiveRecord 提供。不过,我们很乐意在其中添加此功能,如果您愿意提供帮助,我们很乐意接受 PR 和/或为该过程做出贡献。现在,在https://github.com/neo4jrb/neo4j/issues打开一个问题,我们可以将它添加到路线图中。
终于得到了解决方案。
在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
检查应用程序根目录,是否有 Rakefile?
创建一个名为“Rakefile”的文件并输入这些行
"#!/usr/bin/env rake
需要 File.expand_path('../config/application', FILE )
APP_NAME::Application.load_tasks
正如其他人之前提到的,rails db:seed
它是由ActiveRecord
. 假设您使用的是没有 的 neo4jrb ActiveRecord
,您将无法再使用此命令来播种数据库。
但是,您可以使用种子库宝石来恢复此能力。
它不依赖于ActiveRecord
likeseed_fu
和其他播种宝石。所以它可以很好地与neo4jrb一起工作。
这个过程相当简单。
db/seeds/
db/seeds/
在目录下创建种子文件例如
#db/seeds/show.seeds.rb
Show.create(name: "Better Call Saul", producer: "Vince Gilligan")