Veritabanını sıfırlayın (tümünü temizleyin), ardından bir veritabanını tohumlayın


159

Veritabanı tablolarındaki verileri silmek için bir komisyon komutu var mı?

Verileri tablolarıma önceden doldurmak için bir db: seed komut dosyasını nasıl oluştururum?

Yanıtlar:



160

Her şeyi silebilir ve her ikisiyle birlikte veritabanı + tohumları yeniden oluşturabilirsiniz:

  1. rake db:reset: schema.rb'den yükler
  2. rake db:drop db:create db:migrate db:seed: taşıma yükleri

Db (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

DB'nin düzgün bir şekilde düştüğünden emin olmak için insanlara herhangi bir sunucuyu kapatmalarını hatırlattığınız için teşekkür ederiz.
aardvarkk

6

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:seediş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 ...


zeki, sıfırdan her şeyi yeniden yaratma her zaman benim için uzun sürdü
m02ph3u5

5

Raylar 5 itibarıyla rakekomut satırı aracı olarak ad verilmiş olan railsyani şimdi

rails db:reset onun yerine rake db:reset

aynı şekilde çalışacak


0

rake db:resetYerel 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 .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.