File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -21,13 +21,13 @@ class Avram::Connection
2121
2222 def connect_listen (* channels : String , & block : PQ ::Notification - > ) : Nil
2323 PG .connect_listen(credentials.url, * channels, & block)
24- rescue DB ::ConnectionRefused
25- raise ConnectionError .new(credentials.uri, database_class: @database_class )
24+ rescue e : DB ::ConnectionRefused
25+ raise ConnectionError .new(credentials.uri, database_class: @database_class , cause: e )
2626 end
2727
2828 def try_connection ! : DB ::Database
2929 DB .open(credentials.url)
30- rescue DB ::ConnectionRefused
31- raise ConnectionError .new(credentials.uri, database_class: @database_class )
30+ rescue e : DB ::ConnectionRefused
31+ raise ConnectionError .new(credentials.uri, database_class: @database_class , cause: e )
3232 end
3333end
Original file line number Diff line number Diff line change @@ -88,7 +88,7 @@ module Avram
8888 getter connection_details : URI
8989 getter database_class : Avram ::Database .class
9090
91- def initialize (@connection_details : URI , @database_class : Avram ::Database .class)
91+ def initialize (@connection_details : URI , @database_class : Avram ::Database .class, cause = nil )
9292 error = String .build do |message |
9393 message << database_class.name << " : Failed to connect to database '"
9494 message << connection_details.path.try(& .[1 ..- 1 ]) << " ' with username '"
@@ -108,7 +108,7 @@ module Avram
108108 end
109109 end
110110
111- super error
111+ super error, cause
112112 end
113113 end
114114
@@ -139,8 +139,8 @@ module Avram
139139 end
140140
141141 class PGNotRunningError < AvramError
142- def initialize (original_message : String )
143- super <<-ERROR
142+ def initialize (original_message : String , cause = nil )
143+ super <<-ERROR , cause
144144 It looks like Postgres is not running.
145145
146146 Message from Postgres:
Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ class Avram::Migrator::Runner
8787 rescue e : DB ::ConnectionRefused
8888 message = e.message.to_s
8989 if message.blank?
90- raise ConnectionError .new(URI .parse(credentials.url_without_query_params), Avram .settings.database_to_migrate)
90+ raise ConnectionError .new(URI .parse(credentials.url_without_query_params), Avram .settings.database_to_migrate, cause: e )
9191 else
9292 raise e
9393 end
@@ -98,7 +98,7 @@ class Avram::Migrator::Runner
9898 puts " Already created #{ self .db_name.colorize(:green )} "
9999 end
100100 elsif message.includes?(" Cannot establish connection" )
101- raise PGNotRunningError .new(message)
101+ raise PGNotRunningError .new(message, cause: e )
102102 else
103103 raise e
104104 end
@@ -264,6 +264,7 @@ class Avram::Migrator::Runner
264264 yield
265265 end
266266 rescue e : DB ::ConnectionRefused
267- raise " Unable to connect to the database. Please check your configuration." .colorize(:red ).to_s
267+ message = " Unable to connect to the database. Please check your configuration." .colorize(:red ).to_s
268+ raise Exception .new(message, cause: e)
268269 end
269270end
Original file line number Diff line number Diff line change @@ -168,7 +168,7 @@ module Avram::Queryable(T)
168168 direction = Avram ::OrderBy ::Direction .parse(direction.to_s)
169169 order_by(Avram ::OrderBy .new(column, direction, null_sorting))
170170 rescue e : ArgumentError
171- raise " #{ e.message } . Accepted values are: :asc, :desc"
171+ raise ArgumentError .new( " #{ e.message } . Accepted values are: :asc, :desc" )
172172 end
173173
174174 def order_by (order : Avram ::OrderByClause ) : self
Original file line number Diff line number Diff line change @@ -23,8 +23,8 @@ class Db::VerifyConnection < BaseTask
2323 DB .open(Avram .settings.database_to_migrate.settings.credentials.url) do |_db |
2424 output.puts " ✔ Connection verified" unless quiet?
2525 end
26- rescue Avram ::ConnectionError | DB ::ConnectionRefused
27- raise <<-ERROR
26+ rescue e : Avram ::ConnectionError | DB ::ConnectionRefused
27+ raise Exception .new <<-ERROR , cause: e
2828 Unable to connect to Postgres for database '#{ Avram .settings.database_to_migrate} '.
2929
3030 This is what we tried to connect to:
You can’t perform that action at this time.
0 commit comments