Yanıtlar:
Rake db: migrate, geliştirme ortamında bekleyen geçişleri çalıştırır ve db / schema.rb'yi günceller. Rake db: test: load, test veritabanını geçerli db / schema.rb'den yeniden oluşturur. Sonraki denemelerde, önce bekleyen geçişleri kontrol edip sizi uygun şekilde uyardığından ilk olarak db: test: Prepar'ı çalıştırmak iyi bir fikirdir.
- http://guides.rubyonrails.org/testing.html
Temel olarak, veritabanını klonlamayı yönetir, böylece test veritabanını güncellemek için geçişleri teste göre çalıştırmanız gerekmez.
Özellikle rake db:test:prepare
şunları yapacaktır:
Yani, db/schema.rb
projenizde mevcut olan ve çalıştırılmamış herhangi bir geçiş olup olmadığını belirlemek için dosyanıza bakacaktır . Bekleyen geçiş olmadığını varsayarsak, veritabanını boşaltır ve db/schema.rb
dosyanın içeriğine göre yeniden yükler.
tırmık db: Test: hazırlamak gibi PG sorunlar için iyi bir çözümdür bu .
"PG :: TanımsızTable: HATA: ilişki mevcut değil" doğru bir Rails adlandırma ve kuralı ile "sadece yürütemediğim" rake db:migrate RAILS_ENV=production
Örneğin, burada tartışılan bir hata için test veritabanı oluşturamadığınızda : "PG tanımlanamayan hata ilişkisi kullanıcılar mevcut değil"
Bu hatayla ilgili her şey "PG :: UndefinedTable: ERROR: xxxxx ilişkisi mevcut değil"
rake db:test:prepare
artık kullanımdan kaldırıldı.