Conecte ActiveRecord a trav√©s del t√ļnel SSH

Recientemente, estaba construyendo una herramienta CLI para realizar un poco de mantenimiento de datos, y aunque las herramientas se desarrollaron en Ruby, el servidor en cuesti√≥n no lo ten√≠a instalado. Por lo tanto, tuve que conectarme a la base de datos remota a trav√©s de un t√ļnel SSH. As√≠ es como consegu√≠ que ActiveRecord se conectara a la base de datos remota a trav√©s de SSH, en caso de que alguien m√°s lo encuentre √ļtil

require 'net/ssh/gateway'
require
'active_record'

# there is no password here as the local user `user` has an SSH key stored on the remote server
gateway
= Net::SSH::Gateway.new('domain.tld', 'user')
port
= gateway.open('127.0.0.1', 3306, 3307)

ActiveRecord::Base.establish_connection(
adapter
: 'mysql2',
host
: '127.0.0.1',
username
: 'dbuser',
password
: 'dbpassword',
database
: 'dbname',
port
: port
)

Una vez establecida esta conexión, los modelos normales que extienden ActiveRecord :: Base podrían acceder a la base de datos como si fuera local.