Конфигурирование Neo4j с рельсами для разных сред - PullRequest
0 голосов
/ 04 сентября 2018

Я настроил Neo4j в среде разработки с использованием ядра geo 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 голосов
/ 04 сентября 2018

Я не знаю, какой у вас опыт работы с Rails. Но в рельсах у вас в основном по умолчанию 3 среды:

1- разработка

2- тест

3- производство

У вас могут быть разные конфигурации для разных сред, как показано в этом вопросе SO:

Лучший способ создания пользовательских настроек конфигурации для моего приложения Rails?

И последнее, я бы не рекомендовал использовать адаптер Neo4j напрямую, если у вас нет опыта и вам нужен прямой доступ к нему из-за требований бизнеса.

Я бы рекомендовал использовать оболочку Neo4jrb вокруг основного адаптера, как показано здесь:

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


UPDATE

Создайте файл с именем 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]

Тогда у вас будет 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...