Odpowiedzi:
Rake db: migrate powyżej uruchamia wszystkie oczekujące migracje w środowisku programistycznym i aktualizuje plik db / schema.rb. Rake db: test: load odtwarza testową bazę danych z aktualnego db / schema.rb. Przy kolejnych próbach dobrze jest najpierw uruchomić db: test: ready, ponieważ najpierw sprawdza, czy nie ma oczekujących migracji i odpowiednio ostrzega.
- http://guides.rubyonrails.org/testing.html
Zasadniczo obsługuje klonowanie bazy danych, więc nie musisz uruchamiać migracji na podstawie testu, aby zaktualizować testową bazę danych.
W szczególności rake db:test:prepare
wykona następujące czynności:
Oznacza to, że będzie sprawdzać db/schema.rb
plik, aby określić, czy w projekcie istnieją migracje, które nie zostały uruchomione. Zakładając, że nie ma żadnych zaległych migracji, opróżni bazę danych i załaduje ją ponownie na podstawie zawartości db/schema.rb
pliku.
rake db: test: przygotować to dobre rozwiązanie dla kwestii PG jak ten .
„PG :: UndefinedTable: ERROR: relacja nie istnieje” z poprawnym nazewnictwem i konwencją Railsów „gdzie nie mogłem po prostu wykonać rake db:migrate RAILS_ENV=production
Na przykład, gdy nie można utworzyć testowej bazy danych dla omawianego tutaj błędu : „PG undefinedtable error relacja użytkowników nie istnieje”
Cały wokół tego błędu „PG :: UndefinedTable: ERROR: relacja xxxxx nie istnieje”
rake db:test:prepare
jest teraz przestarzała.