在数据库停机后,Rails 将首先抛出一次此错误:
ActiveRecord::StatementInvalid: NativeException: org.postgresql.util.PSQLException: 连接被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。
从那时起,每个数据库调用都会出现以下错误,即使在数据库备份之后:
ActiveRecord::StatementInvalid: ActiveRecord::JDBCError: 此连接已关闭。
为了让服务器再次运行,我必须重新启动 rails 服务器。这对我们来说并不理想,因为我们的产品工程师希望对我们的数据库进行维护,而不必同时恢复所有依赖于数据库的服务。所以,我想知道 - 有没有办法自动让 Rails 尝试重新建立数据库连接或推荐的方法来获得这种行为?
我尝试过的事情:
我已经尝试在我的数据库选项中将 reconnect 设置为 true,这样,我可以终止单个数据库连接,并且 rails 将重新建立连接。但是,它不会在数据库中断之后。我发现从命令控制台我可以通过调用来恢复连接
ActiveRecord::Base::建立连接
所以也许找到一个干净的地方让rails调用上面的命令这会起作用吗?有什么建议么?