2013-04-08 16 views
7

rake db:test:clone_structure'u çalıştırmaya çalışıyorum, ancak veritabanını yeniden oluşturmayı başaramıyor. Ben için clone_structure görevi değiştirdiğinizde, ŞimdiRake bağımlılığı çalışmıyor, ancak çalıştırılıyor

$ rake db:test:clone_structure --trace 
** Invoke db:test:clone_structure (first_time) 
** Invoke db:structure:dump (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:structure:dump 
** Invoke db:test:purge (first_time) 
** Invoke environment 
** Execute db:test:purge 
** Execute db:test:clone_structure 

: Ben izleme çalıştırıldığında, ben db:test:load_structure idam almıyor fark ettik

task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ] 

: Sonunda görevin kendisi baktı her şey aniden çalışır ... ...load_structure çağırmak

task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ] do 
    db_namespace["test:load_structure"].invoke 
end 

!

$ rake db:test:prepare --trace 

** Invoke db:test:clone_structure (first_time) 
** Invoke db:structure:dump (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:structure:dump 
** Invoke db:test:purge (first_time) 
** Invoke environment 
** Execute db:test:purge 
** Execute db:test:clone_structure 
** Invoke db:test:load_structure (first_time) 
** Invoke db:test:purge 
** Execute db:test:load_structure 
** Invoke db:structure:load (first_time) 
** Invoke environment 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Execute db:structure:load 

Bu davranışa ne neden olabilir? Rails 3.2.14 ve Rake 10.1.0 kullanıyorum.

GÜNCELLENMİŞ: 3.2.11'den 3.2.13'e yükseltilmiş Raylar hala bir sorun.

İKİNCİ GÜNCELLEME: Ben 3.2.14 Rails yükseltilmiş ve 10.1.0 için Rake ve ben neredeyse orada söyleyebilirim hala bir sorun

+0

Yapının.sql 'rake db: test: clone_structure' çalıştırdığınızda sorun yaratmaz mı? Bununla ilgili herhangi bir sorun görüyor musunuz? –

+0

"RAILS_ENV = test rake db: test: prepare --trace" komutunu çalıştırmayı deneyebilir misiniz? Bazen, bazı görevlerin yerine getirilmesi için RAILS_ENV'nin ayarlanması gerektiğini gördüm. – Subhas

+0

@yuri: db: test: clone_structure mükemmel çalışıyor gibi görünüyor. Emin olmak için bazı hata ayıklar atacağım. – abeger

cevap

0

bildiği gibi görevlerden birinde bir yığın izleme yapışmasını sonra ediliyordu biliyordu aradı, sorunu buldum. ActiveRecord ya da Rake ile hiçbir ilgisi yok ve ben de kullandığım activerecord-oracle_enhanced-adapter gem ile ilgisi var.

Temelde, taş şöyle db:test:clone_structure görevi geçersiz kılar: o db:test:load_structure için herhangi bir başvuru özlüyor

redefine_task :clone_structure => [ "db:structure:dump", "db:test:purge" ] 

Not söyledi.

Projeye bir issue ve pull request gönderdim, bu nedenle yakın bir gelecekte çözülmesi umulur.

1

bu. Bildiğim kadarıyla bu olurdu için rake kuralı ... Aksi

task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ] do 
    Rake::Task["clone_structure"].invoke 
end 

, ben tercih ediyorum ...

task :clone_structure do 
    Rake::Task["db:structure:dump"].invoke 
    Rake::Task["db:test:load_structure"].invoke 
end 
İlgili konular