activerecord内存中共享缓存

时间:2013-01-07 23:31:45

标签: ruby-on-rails sqlite jruby rails-activerecord in-memory-database

可以通过activerecord使用sqlite3的“共享缓存”吗? (见:http://www.sqlite.org/inmemorydb.html

我在JRuby Swing应用程序中使用activerecord独立(没有rails),涉及一些Worker-Threads。问题:只有主线程才能访问数据,因为每个线程都会重建一个新的内存数据库。所以我得到了

[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:insert_model_name)

来自各地的

,主线程除外。有解决方法还是我错过了什么? (我使用最新版本的jruby,java和gems)

提前致谢!

到目前为止

Database-Config:https://gist.github.com/4482423

更新:用于说明问题的最小脚本。它在Linux下运行良好,但在WIndows 7中运行良好:https://gist.github.com/4483617

1 个答案:

答案 0 :(得分:3)

以下令牌效果很好:
"file::memory:?cache=shared"
另外,检查您的SQLite版本,它应至少为3.7.13以支持此功能。