0

我已经将我的 Rails 应用程序设置为使用Neo4jRB来使用 Neo4j ,这在生产和开发中都很好。然而在测试中我得到了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 异常并给我一个未找到适配器的异常。

4

1 回答 1

0

如错误中所述,它源于 ActiveRecord 而不是 Neo4jrb:

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:

我假设您同时安装了 Neo4jrb 和 ActiveRecord(这是允许的)。运行测试时,ActiveRecord 配置不正确。如果您不想安装 ActiveRecord,则应将其卸载。不管怎样,这听起来像是 ActiveRecord 配置问题,而不是 Neo4jrb 配置问题。

于 2018-04-22T06:39:33.003 回答