【问题标题】:rake db:seed is not working using neo4j gemrake db:seed 无法使用 neo4j gem
【发布时间】:2014-12-07 20:53:40
【问题描述】:

我已经说过使用 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。

有人知道吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,为信息找到一种方法来做到这一点。请检查我的答案。我会 fork 你的 git 并尝试做出贡献。
    【解决方案2】:

    终于找到解决办法了。

    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
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        正如其他人之前提到的,rails db:seed 是由ActiveRecord 支持的内置功能。假设您在没有ActiveRecord 的情况下使用 neo4jrb,您将无法再使用此命令来播种数据库。

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

        它不像seed_fu 和其他播种宝石那样依赖于ActiveRecord。所以它可以与 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

        【讨论】:

          猜你喜欢
          • 2018-01-30
          • 2015-02-15
          • 2014-10-09
          • 2011-02-08
          • 1970-01-01
          • 2017-05-05
          • 1970-01-01
          • 2011-07-27
          • 2015-07-11
          相关资源
          最近更新 更多