带有Neo4jrb的Rails仍然使用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

将适配器更改为例如 database.yml 中的 neo4jrb 会删除 SQLite 异常,并给我一个找不到适配器的异常。

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

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

我假设你同时安装了Neo4jrb和ActiveRecord(这是允许的(。运行测试时,活动记录配置不正确。如果您不希望安装ActiveRecord,则应将其卸载。换句话说,这听起来像是ActiveRecord配置问题,而不是Neo4jrb配置问题。

最新更新