Ruby: Catching Sequel :: DatabaseConnectionError

Estoy usando Docker para ejecutar mi aplicación Ruby, con MySQL como database. Necesito que mi aplicación Ruby espere hasta que MySQL haya terminado de cargarse y se pueda establecer una connection.

Estoy usando el siguiente código:

def connect_to_db begin puts "Trying to connect to Mysql" Sequel::Model.db = Sequel.connect( // Connection stuff in here ) rescue Sequel::Error => e puts "Mysql connection failed #{e.message}: Retrying." retry end end connect_to_db() 

Esto se ejecuta una vez, luego Sequel::DatabaseConnectionError: Mysql2::Error: Unknown MySQL server host (25) un error: Sequel::DatabaseConnectionError: Mysql2::Error: Unknown MySQL server host (25) – No entra en el bloque de rescue y no lo vuelve a intentar.

He intentado rescue Sequel::DatabaseConnectionError pero esto da el mismo resultado.

¿Qué necesito rescatar aquí?

Lo tengo trabajando con db.test_connection :

 def connect_to_db_with_mysql_driver begin puts "Trying to connect to Mysql" db = Sequel.connect( // Connection stuff ) if db.test_connection == true Sequel::Model.db = db else raise "Mysql connection failed." end rescue => ex puts ex puts "Retrying..." retry end end