Динамическое подключение ко второй базе данных MySQL в Ruby on Rails

0

Я работаю над приложением rails, которое будет переносить пользовательский контент. Мне нужно взять параметры базы данных через форму и использовать их для подключения к данной базе данных. Какой лучший способ достичь этого? Я попытался использовать Mysql.real_connect без радости.

3 ответа

3
Лучший ответ

Вы можете вызвать establish_connection с вашими новыми параметрами, а затем использовать connection обычно.

  • 0
    Спасибо, это то, что я в конечном итоге использовал.
1

У меня была аналогичная потребность в граблинге. Я в конечном итоге использовал в основном следующий код после того, как окружение рельсов было загружено граблями.

require "mysql2"

#Constants
#---------
DB_HOST = "example.com"
DB_USER = "username"
DB_PASSWORD = "password"
DB = "db_name"

SQL = "SELECT * FROM BLAH;"

client = Mysql2::Client.new(:host => DB_HOST, :username => DB_USER,
                            :password=> DB_PASSWORD, :database => DB)

rs = client.query(SQL)
rs.each do |h|
  #Work on Row here
end

Он использует mysql (главным образом потому, что я устал от того, что mysql сбой script), но процесс должен быть тем же.

  • 0
    Вы установили клиент в файле инициализатора, а затем просто использовали client.query () из ваших контроллеров? Мне нужно сделать что-то похожее на это, но у меня возникают проблемы с выбором места, где должно быть установлено «соединение», чтобы его можно было использовать повторно. и я беспокоюсь о том, что слишком много соединений и соединения не закрываются ... вы можете опубликовать пример / gist?
0

Отметьте ruby/mysql

require "mysql"
my = Mysql::new("host", "user", "passwd", "db")
res = my.query("select * from tbl")
res.each do |row|
  col1 = row[0]
  col2 = row[1]
end

Ещё вопросы

Сообщество Overcoder
Наверх
Меню