【发布时间】:2019-05-24 05:13:39
【问题描述】:
我尝试在我的 Ruby-on-Rails 项目中设置 Sqlite3 的日志模式。
似乎 ruby-on-rails 使用 sqlite 的默认日志模式,即“删除”,因为我在更新数据库时在文件夹“db”中看到了一个日志文件,并且在更新完成时它被删除了。我希望将 jouranl-mode 设置为“WAL”或“memory”。 我试过 Sqlite 命令行
PRAGMA main.journal_mode=WAL
但它不影响在 ruby-on-rails 中的应用。
最后我通过更改 sqlite3_adapter.rb 的源代码实现了它
我更改了文件中的一个函数:activerecord-5.1.4/lib/active_record/connection_adapter/sqlite3_adapter.rb
def configure_connection
# here are original codes
execute("PRAGMA journal_mode = WAL", "SCHEMA")
end
因为 configure_connection 是由 SQLite3Adapter 的初始化调用的
虽然可行,但听起来不是很好的解决方案。 有没有更好的方法在 Ruby-on-Rails(版本为 5.1.4)中设置 Sqlite3 的日志模式?例如配置选项
【问题讨论】: