diff --git a/src/granite/connection_management.cr b/src/granite/connection_management.cr index 6cfe03b4..e4e487dd 100644 --- a/src/granite/connection_management.cr +++ b/src/granite/connection_management.cr @@ -51,6 +51,8 @@ module Granite::ConnectionManagement end def self.schedule_adapter_switch + return if @@writer_adapter == @@reader_adapter + spawn do sleep @@connection_switch_wait_period.milliseconds switch_to_reader_adapter diff --git a/src/granite/transactions.cr b/src/granite/transactions.cr index 03be01a1..045a129a 100644 --- a/src/granite/transactions.cr +++ b/src/granite/transactions.cr @@ -68,7 +68,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end # Runs an INSERT statement for all records in *model_array*, with options to @@ -92,7 +92,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end def import(model_array : Array(self) | Granite::Collection(self), ignore_on_duplicate : Bool, batch_size : Int32 = model_array.size) @@ -114,7 +114,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end end @@ -176,7 +176,7 @@ module Granite::Transactions rescue err : DB::Error raise err rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) else self.new_record = false end @@ -199,7 +199,7 @@ module Granite::Transactions begin self.class.adapter.update(self.class.table_name, self.class.primary_name, fields, params) rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end {% end %} end