我已经将我的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
将适配器更改为例如 database.yml 中的 neo4jrb
会删除 SQLite 异常,并给我一个找不到适配器的异常。
如错误中所述,它源于ActiveRecord而不是Neo4jrb:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:
我假设你同时安装了Neo4jrb和ActiveRecord(这是允许的(。运行测试时,活动记录配置不正确。如果您不希望安装ActiveRecord,则应将其卸载。换句话说,这听起来像是ActiveRecord配置问题,而不是Neo4jrb配置问题。