Bu yüzden config/database.yml
'a bir dış veritabanı ekleyebilmek istiyorum.Rails harici veritabanı çağrıları nasıl yapılır?
Bu mümkün mü? Nasıl olduğunu anlayamadım.
farklı modellerBağlantılar genellikle ActiveRecord::Base.establish_connection
yoluyla oluşturulan ve alınan ActiveRecord::Base.connection
tarafından. ActiveRecord::Base
devralan tüm sınıflar bu bağlantıyı kullanır. Ama aynı zamanda bir sınıfa özel bir bağlantı kurabilirsiniz edilir birden fazla veritabanlarına
"Bağlantı. Örneğin Course
bir ActiveRecord::Base
olduğunu, ancak farklı bir veritabanında bulunuyorsa, sadece Course.establish_connection
ve Course
ve alt sınıflarının her yerine bu bağlantıyı kullanır söyleyebiliriz.
Bu özellik uygulanan bir bağlantı tutarak ActiveRecord::Base
numaralı havuzda, bu sınıf tarafından indekslenen bir Hash dosyasıdır. Bir bağlantı istenirse, bağlantı havuzunda bir bağlantı bulunana kadar retrieve_connection yöntemi sınıf hiyerarşisine gider. Yerine size, Sonra
my_external_db:
adapter: mysql
username: ...
....
modeli oluşturmak ve
class MyExternalModel < ActiveRecord::Base
establish_connection(:my_external_db)
set_table_name 'my_external_table'
end
Bağlantıyı daha sonra kapatmak zorunda mıyım? – Kirby
@Kirby: Bunu yapmak isteyeceğinizi düşünmüyorum, aksi takdirde raylar Her istek için yeni bir bağlantı açın. Burada sadece sunucu bir kez açıldığında yapılır. – ryeguy
Bunun için çok teşekkür ederim! raylarımı harici bir veritabanına bağlamak için kendimi deniyordum. çok yararlı. – Vicer