【问题标题】:Configuring Neo4j with rails for different environments为不同环境配置带有 Rails 的 Neo4j
【发布时间】:2019-02-09 14:06:27
【问题描述】:

我已经使用 neo4j 核心 gem 在开发环境中配置了 Neo4j。

为了创建新连接,我在 application.rb 中使用了以下代码

Application.rb

neo4j_adaptor = Neo4j::Core::CypherSession::Adaptors::HTTP.new('http://localhost:7474')
neo4j_session = Neo4j::Core::CypherSession.new(neo4j_adaptor)

如何配置neo4j,使开发环境和测试环境使用不同的数据库。

例如:用于开发 sample_development 和运行 rspec sample_test。

【问题讨论】:

    标签: ruby-on-rails neo4j rspec


    【解决方案1】:

    我不知道您对 Rails 有多少经验。但是在 Rails 中,您主要有 3 个默认环境:

    1- 开发

    2-测试

    3-生产

    您可以为不同的环境设置不同的配置,如这个 SO 问题所示:

    Best way to create custom config options for my Rails app?

    最后一点,我不建议直接使用 Neo4j 适配器,除非您真的很有经验并且因为业务需求需要直接访问它。

    我建议在核心适配器周围使用 Neo4jrb 包装器,如下所示:

    https://neo4jrb.readthedocs.io/en/9.2.x/Setup.html#generating-a-new-app


    更新

    使用以下代码在项目的config 目录中创建一个名为neo4j.yml 的文件:

    development:
      neo4j_api: http://localhost:7474
    
    test:
      neo4j_api: http://something_else:7474
    
    production:
      neo4j_api: http://maybe_something_else:7474
    

    然后在你的项目中创建一个initializer,我们称之为neo4j.rb,所以它的路径应该是:config/initializers/neo4j.rb

    在这个初始化器中放入以下代码:

    NEO4J_CONFIG = YAML.load_file(Rails.root.join('config/neo4j.yml'))[Rails.env]
    

    然后,您将可以在 Rails 应用程序的任何部分访问 NEO4J_CONFIG,例如:

    NEO4J_CONFIG['neo4j_api']

    你的代码应该是这样的:

    neo4j_adaptor = Neo4j::Core::CypherSession::Adaptors::HTTP.new(NEO4J_CONFIG['neo4j_api'])
    neo4j_session = Neo4j::Core::CypherSession.new(neo4j_adaptor)
    

    【讨论】:

    • 如何为现有的 Rails 应用使用 Neo4jrb 包装器?实际上,现在我正在尝试从 postgres 迁移到 neo4j,因为必须在我已经存在的 rails 应用程序上完成配置
    • @SuriyaLakshmi 看看我更新的帖子然后:)
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多