Eth*_*han 5 ruby postgresql activerecord sinatra
我正在将ActiveRecord与Sinatra和PostgreSQL一起使用。当数据库连接断开(由于临时网络故障或postgres服务器重新启动)时,我的应用程序不会自动重新获得连接。我必须重新启动应用程序才能再次连接到postgres。我记得当我在另一个项目中使用Rails时,我没有遇到这个问题。
我需要输入一些配置或代码来告诉ActiveRecord自动重新连接到PostgreSQL吗?
如果您在 Rails 外部或至少在控制器操作外部使用 Active Record,则必须在执行数据库语句之前自行验证连接。这可以通过以下代码完成:
ActiveRecord::Base.verify_active_connections!
Run Code Online (Sandbox Code Playgroud)
由于 Active Record 每个线程使用一个连接,因此在多线程应用程序中,必须为每个线程单独执行此验证。
这篇博客文章是关于重新连接到 MySQL 的,但我猜无论使用什么引擎,它都是一样的,因为它被抽象了。该博客还在配置中提到了重新连接选项,但您必须确定它是否适用于 Postgres。
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |