Rails

2013-02-19 22 views
9

'de önceden tohumlanmış verileri geri al Tabloya db/seed.rb dosyasını düzenleyerek vekomutunu yürüterek bir satır veri ekimi yaptım. Bilmeden, bu satırda yanlış bilgiler yazdım. Bu yüzden önceden eklenen veri satırını kaldırmak istiyorum. rake db:migrate için rake db:rollback gibi aynı rake komutu var mı.Rails

1:

+2

Damla veritabanını yeniden ve yeniden tohum. :) –

+0

@Sergio Tulentsev: Katılıyorum. Ama son tohumu yapmadan önce oradaki verileri saklamak zorundayım. Sadece son tohumlanan verileri kaldırmak istiyorum. Bunu yapmama yardım eder misin lütfen? –

+2

Bunun için komisyon görevi yok. Verileri elle bulun ve silin. Bir daha olmasını bekliyorsan, bir senaryo yaz. –

cevap

3

bir bu kadar yönlerinden çift vardır

Sadece tohum güncellendikten sonra rake db:seed yinelemek gerekir: başka hiçbir veri veritabanında mevcut olduğunda tohum verileri değiştirmek istiyorum .rb dosyası. Bu modele herhangi bir şey eklemeden önce MyModel.delete_all olduğundan emin olun.

2: Tohum verileri değiştirmek istiyorum, ama bu biraz daha zordur veritabanı

eklenen diğer veriler vardır. Genellikle Burada yapılacak basit şey elle ham sql-tablolar biriyle verileri değiştirmek veya PhpPpAdmin gibi araçların kullanımı, PhpMyAdmin vb Şimdi


ile etmektir, possiby birlikte bu kesmek için bir yol yoktur ve bu, seed.rb dosyasında bazı voodoo yapmak olacaktır.

if ENV['deseed'] 
    #Do your deseeding action here 
else 
    #Do your seeding here. 
end 

Hatta gerçek deli alabilir ve böyle bir şey yapmak: Yani o zaman seed.rb içinde, rake db:seed deseed=true çalıştırabilir

deseed = ENV['desee'] 

#DANGER: Dirty hacks upcoming: 
deseed? myModelCall = MyModel.method(:destroy_all): myModelCall = MyModel.method(:create) 

myModelCall.call :user_id_or_whatevs => 23 #this creates or deletes a MyModel entity with the given parameters 
#NOTE this might not work in all cases and I would not necessarily recommend doing this. 

#<3uby