diff --git a/CHANGELOG.md b/CHANGELOG.md index 6693b44e9..0ce566aed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,18 @@ Changelog ========= +## TBD + ### Enhancements * Classify `ActionDispatch::Http::MimeNegotiation::InvalidType` as info severity level | [#654](https://github.com/bugsnag/bugsnag-ruby/pull/654) +### Fixes + +* Include `connection_id` in ActiveRecord breadcrumb metadata on new versons of Rails + | [#655](https://github.com/bugsnag/bugsnag-ruby/pull/655) + ## 6.19.0 (6 January 2021) ### Enhancements diff --git a/lib/bugsnag/integrations/railtie.rb b/lib/bugsnag/integrations/railtie.rb index d58dd3b8f..885eb94fe 100644 --- a/lib/bugsnag/integrations/railtie.rb +++ b/lib/bugsnag/integrations/railtie.rb @@ -91,10 +91,19 @@ def event_subscription(event) filtered_data = data.slice(*event[:allowed_data]) filtered_data[:event_name] = event[:id] filtered_data[:event_id] = event_id - if event[:id] == "sql.active_record" && data.key?(:binds) - binds = data[:binds].each_with_object({}) { |bind, output| output[bind.name] = '?' if defined?(bind.name) } - filtered_data[:binds] = JSON.dump(binds) unless binds.empty? + + if event[:id] == "sql.active_record" + if data.key?(:binds) + binds = data[:binds].each_with_object({}) { |bind, output| output[bind.name] = '?' if defined?(bind.name) } + filtered_data[:binds] = JSON.dump(binds) unless binds.empty? + end + + if data.key?(:connection) && !data.key?(:connection_id) + # get the connection ID from the connection object + filtered_data[:connection_id] = data[:connection].object_id + end end + Bugsnag.leave_breadcrumb( event[:message], filtered_data,