使用Rails为不同的环境配置Neo4j

时间:2018-09-04 13:56:48

标签: ruby-on-rails neo4j rspec

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

1 个答案:

答案 0 :(得分:2)

我不知道您在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


更新

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

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)