Yanıtlar:
rake db:reset
Hangi damla kullanın ve sonra veritabanını yeniden oluşturur ve seeds.rb dosyasını içerir.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Her şeyi silebilir ve her ikisiyle birlikte veritabanı + tohumları yeniden oluşturabilirsiniz:
rake db:reset
: schema.rb'den yüklerrake db:drop db:create db:migrate db:seed
: taşıma yükleriDb (ray sunucusu, sql istemcisi ..) ile bağlantınız olmadığından emin olun, aksi takdirde db düşmez.
schema.rb, veritabanınızın oluşturduğu geçerli durumun bir anlık görüntüsüdür:
rake db:schema:dump
Sadece verilerinizi yeniden yüklemek için tüm karmaşayı bırakmak ve yeniden oluşturmak istemiyorsanız , ifadeleriniz verileri yüklemeden önce bir tabloyu temizlemek için seed.db dosyasında MyModel.destroy_all
(veya delete_all
) kullanabilirsiniz MyModel.create!(...)
. Ardından db:seed
işlemi tekrar tekrar yapabilirsiniz . (Açıkçası, bu yalnızca içine veri yüklediğiniz tabloları etkiler, diğerlerini etkilemez.)
Https://stackoverflow.com/a/14957893/4553442 adresinde yukarı ve aşağı geçişe benzer bir "tohum çıkarma" işlemi eklemek için "kirli bir saldırı" var ...
Raylar 5 itibarıyla rake
komut satırı aracı olarak ad verilmiş olan rails
yani şimdi
rails db:reset
onun yerine rake db:reset
aynı şekilde çalışacak
rake db:reset
Yerel veritabanını bırakmak ve yüklenen verilerle yeni bir başlangıç yapmak istediğinizde kullanabilirsiniz db/seeds.rb
. Bu, hala şemanızı anlarken ve genellikle mevcut modellere alan eklemeniz gerektiğinde yararlı bir komuttur.
Sıfırlama komutu kullanıldıktan sonra aşağıdakileri yapacaktır: Veritabanını bırakın: rake db:drop
Şemayı yükleyin: rake db:schema:load
Verileri tohumlayın:rake db:seed
Ancak veritabanınızı tamamen bırakmak istiyorsanız kullanabilirsiniz rake db:drop
. Veritabanının düşürülmesi, şema çakışmalarını veya hatalı verileri de kaldıracaktır. Sahip olduğunuz verileri saklamak istiyorsanız, bu komutu çalıştırmadan önce yedeklediğinizden emin olun.
Bu en önemli komisyon veritabanı komutları hakkında ayrıntılı bir makaledir .