2010-11-18 16 views
2

Giriş/hesap bilgilerini ve istemci verileri için birden çok istemci şeması tuttuğumuz bir genel şemaya sahip bir veritabanım var. Test verilerini bir müşteri şemasına dökmek/yüklemek için yaml_db'yi başarılı bir şekilde kullandım, ancak bu, veriyi yeniden yüklemek istediğimde, şema_search_path'inin genel şema ile istemciye özel olarak değiştirilmesini gerektirir.Rake - görev çağırmadan önce database.yml yapılandırmasını değiştirmek için nasıl kullanılır?

Bunu otomatikleştirmek için bir komisyon görevi oluşturmaya çalışıyorum, ancak db: data: load görevini çağırmadan önce schema_search_path öğesinin nasıl değiştirileceğinden emin değilim. Bunu yaparak database.yml akım değerleri görebilirsiniz

:

env = "#{RAILS_ENV}"
config = YAML::load(File.open('config/database.yml'))
puts config[env]["schema_search_path"]

Ama ben

çağırdığınızda bu değer kullanılacak değiştirme anlamış değilim

Rake::Task['db:data:load'].invoke

Sadece yeni atamayı denedim hemen önce çağırmadan modifiye yapılandırma ile ActiveRecord :: Base bağlantı kurmak için gerekli -

config[env]["schema_search_path"] = "test_data_schema"

ama bu görünmüyor değer

cevap

2

bu çözdü çalışmak.

ActiveRecord::Base.establish_connection(config[env]) Rake::Task['db:data:load'].invoke()

İlgili konular