मेरे पास रेल एप्लिकेशन है जो एकाधिक डेटाबेस से जुड़ता है।एक लूप में एक रेक कार्य केवल एक बार निष्पादित क्यों करता है?
task :migrate_accounts_schema => [:environment] do |t|
users = User.find :all, :conditions => ["state = 2"], :order => "id asc"
users.each do |user|
if user.state == 2
ActiveRecord::Base.establish_connection(
:adapter => "postgresql",
:host => user.database_host,
:port => user.database_port,
:username => user.subdomain,
:password => "#{user.database_password}",
:database => user.database_name
)
Rake::Task["db:migrate"].invoke
end
end
end
समस्या यह है कि कार्य कार्यान्वित db है: मैं कस्टम रेक कार्य है कि इस तरह दिखता है लिखा केवल उन [0] उपयोगकर्ता (संग्रह में पहले उपयोगकर्ता) के लिए विस्थापित करने और कोई त्रुटि नहीं है, बस चुपचाप stoppes .. ।
यहाँ --trace
** Invoke app:migrate_accounts_schema (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute app:migrate_accounts_schema
** Invoke db:migrate (first_time)
** Invoke environment
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Invoke environment
** Execute db:schema:dump
** Invoke db:migrate
रेक से उत्पादन मुझे पता नहीं क्यों शेष उपयोगकर्ताओं के लिए चले गए नहीं मिलता है है।
चेक स्रोत [यहां] (http://rake.rubyforge.org/classes/Rake/Task.html) – lebreeze
यह काम किया :) धन्यवाद के :) –
यह मेरे लिए बहुत जवाबी सहज लगता है। कोई विचार है कि उन्होंने इसे ऐसा क्यों बनाया? – marcovtwout