我正在运行一个非常基本的Sinatra服务器,它只显示了我通过Sequel gem获得的一些数据的Chartkick图。我注意到图表上的数据似乎没有更新,除非我退出Sinatra服务器脚本并重新运行它。我真的不明白这是怎么可能的......我在使用Sequel阅读我的数据库时使用的唯一非常规选项是只读选项..会导致这个吗?
答案 0 :(得分:0)
事实证明,在这里阅读另一篇文章:
首先,默认情况下,多个进程可以具有相同的SQLite 数据库同时打开,并且可以进行多次读取访问 并行满意。
在写入的情况下,对数据库的单次写入会锁定数据库 在短时间内,没有任何东西,甚至是阅读,都可以访问数据库文件 一点都不。
从版本3.7.0开始,新的“Write Ahead Logging”(WAL)选项 是可用的,其中读和写可以同时进行。
默认情况下,WAL未启用。要打开WAL,请参阅SQLite 文档。
我目前有脚本A,它维护与DB文件的连接并定期写入,脚本B是我的Sinatra服务器,它从该DB文件中读取信息。我在Sinatra脚本中使用块连接解决了这个问题。我不知道如何用续集打开WAL ......