2010-05-06 22 views
5

me refiero a la uno que fue establecido previamente como¿Cómo desconectar una conexión de secuela de ruby ​​existente a una base de datos?

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

o

DB = Sequel.connect('postgres://user:[email protected]/my_db') 

o

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

o etcétera.

La clase Sequel :: base de datos tiene ningún método de instancia pública llamada "desconexión" o así a pesar de que ha "conectar" uno.

Tal vez alguien ya se enfrentaron a ese problema. Agradecería cualquier idea.

+0

Esto no funciona: http://sequel.rubyforge.org/rdoc/classes/Sequel/Database.html#M000332 No es lógico que el método 'disconnect' sea el método de clase BTW. –

+0

Funciona, pero desconecta todas las conexiones establecidas en lugar de una, aunque ese método es de tipo de instancia pública – mcmlxxxiii

+0

Tiene razón, me refería al método de instancias públicas. Corregido Gracias – mcmlxxxiii

Respuesta

12

Como Mladen Jablanović señala, sólo se puede hacer:

DB.disconnect 

que desconectará todas las conexiones disponibles en la agrupación de conexiones de esa instancia Sequel :: Base de datos. No puede elegir una conexión específica para desconectarse, y no tendría sentido hacerlo. Sin embargo, las agrupaciones de conexiones fragmentadas admiten la desconexión de todas las conexiones para un fragmento específico.

+0

Después de que le dijera que eso no tendría sentido, empecé a dudar de que entendiera bien los grupos de conexiones. El siguiente código asume que varios módulos pueden usar simultáneamente una conexión específica de hash DB: [[[DB = {}; DB [: a] Sequel.postgres ('a', opts); DB [: b] Sequel.postgres ('b', opts); DB [: c] Sequel.postgres ('c', opts)]]]. La tarea consiste en desconectar todas las conexiones DB [: a], en realidad al liberar la base de datos específica. ¿Es correcto el enfoque anterior? ¿Es eso posible? DB [: a] .disconnect no funciona como se desea o no entiendo bien? Por cierto, muchas gracias por el kit de herramientas! – mcmlxxxiii

+0

Disculpa por el desagradable mensaje, todavía no estoy desacostumbrado a los métodos de Stackoverflow. El código de ejemplo y las aclaraciones probablemente deberían estar en una pregunta (( – mcmlxxxiii

+1

) Nunca puede elegir una conexión específica para usar. Suponiendo que DB [: a] es su base de datos Sequel ::, DB [: a] .disconnect desconecte todas las conexiones disponibles en el grupo de conexiones de DB [: a]. Si tiene más preguntas, puede publicar en el Grupo de Google de Sequel con el código que está utilizando. –

Cuestiones relacionadas