Rails с Neo4jrb по-прежнему использует sqlite3 для тестирования
Я настроил свое приложение rails для использования Neo4j с использованием Neo4jRB, что прекрасно как при производстве, так и при разработке. Однако в тестировании я получаю ошибку ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:
для каждого теста, поэтому кажется, что он все еще хочет использовать SQLite3.
Я настроил свой config/neo4j.yml так, чтобы он указывал на работающую тестовую базу данных, однако database.yml по- прежнему указывает на SQLite3, и если я внесу в него изменения, то ошибка изменится, поэтому я предполагаю, что это связано с что, но neo4jrb
документация не упоминает, что вам нужно изменить database.yml.
Вот тестовый раздел моего neo4j.yml:
test:
type: http
url: http://localhost:7575
database.yml - это просто стандартный сгенерированный Rails-файл:
default: &default
adapter: sqlite3
pool: <%= ENV.fetch(RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
test:
<<: *default
database: db/test.sqlite3
Изменение адаптера, например, на neo4jrb
в database.yml удаляет исключения SQLite и дает мне адаптер, а не исключение вместо.
1 ответ
Как указано в ошибке, это происходит от ActiveRecord, а не Neo4jrb:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:
Я предполагаю, что у вас установлены и Neo4jrb, и ActiveRecord (что разрешено). Когда вы запускаете свои тесты, ActiveRecord не настроен должным образом. Если вы не хотите, чтобы ActiveRecord был установлен, вы должны удалить его. Иными словами, это звучит как проблема конфигурации ActiveRecord, а не проблема конфигурации Neo4jrb.