Ruby - 测试数据库连接是否可行

use*_*136 9 ruby database ruby-on-rails

我希望实现一种方法来测试我们的应用程序的数据库连接.

我们目前遇到连接问题,因此希望无需登录即可检查连接.

有没有办法显示一个页面,说明数据库连接已启动或数据库连接已关闭,具体取决于连接是否失败.如果需要任何其他信息,请告诉我.

如果我缺乏细节,那么只能开始学习绳索如此道歉.

dav*_*idb 16

您可以通过运行以下脚本来检查是否可以建立连接:

require './config/environment.rb' # Assuming the script is located in the root of the rails app
begin
  ActiveRecord::Base.establish_connection # Establishes connection
  ActiveRecord::Base.connection # Calls connection object
  puts "CONNECTED!" if ActiveRecord::Base.connected? 
  puts "NOT CONNECTED!" unless ActiveRecord::Base.connected?
rescue
  puts "NOT CONNECTED!"
end
Run Code Online (Sandbox Code Playgroud)

  • 只是一个单挑,永远不要使用`rescue`而没有您期望的实际错误名称.上面的代码将输出"Not connected!" 如果你有任何错误,无法调试任何东西.我建议拯救特定的错误,比如`rescue ActiveRecord :: AdapterNotSpecified` (4认同)
  • 我们最终在 Rails 应用程序中使用此代码作为健康检查,以确保 postgresql 可以访问。然而事实证明,“建立连接”会导致严重的内存泄漏。删除该行可以保持功能完整,但可以消除内存泄漏。 (2认同)