How to disconnect an existing ruby sequel connection to a database?

mcmlxxxiii picture mcmlxxxiii · May 6, 2010 · Viewed 7.5k times · Source

I mean the one which was previously established as

DB = Sequel.sqlite('my_blog.db')

or

DB = Sequel.connect('postgres://user:password@localhost/my_db')

or

DB = Sequel.postgres('my_db', :user => 'user', :password => 'password', :host => 'localhost')

or etcetera.

The Sequel::Database class has no public instance method called "disconnect" or so though it has "connect" one.

Maybe somebody already faced that problem. I would appreciate any idea.

Answer

Jeremy Evans picture Jeremy Evans · May 7, 2010

As Mladen Jablanović points out, you can just do:

DB.disconnect

Which will disconnect all of the available connections in that Sequel::Database instance's connection pool. You can't choose a specific connection to disconnect, and it wouldn't make sense to. The sharded connection pools do support disconnecting all connections for a specific shard, though.