2013-03-02 14 views

Odpowiedz

98

The rake db:migrate above runs any pending migrations on the development environment and updates db/schema.rb. The rake db:test:load recreates the test database from the current db/schema.rb. On subsequent attempts, it is a good idea to first run db:test:prepare, as it first checks for pending migrations and warns you appropriately.

- http://guides.rubyonrails.org/testing.html

Zasadniczo obsługuje klonowania bazę danych, dzięki czemu nie trzeba uruchamiać migracje przeciwko próbie aktualizacji bazy testowej.

+0

doskonały, dzięki! – bengem

+17

'rake db: test: prepare' jest teraz przestarzałe. – Jngai1297

+3

Powyższy URL jest martwy, to będzie nowy https://github.com/rails/rails/blob/4-1-stable/activerecord/CHANGELOG.md#rails-410-april-8-2014 – riffraff

32

szczególności rake db:test:prepare zrobi następujące:

  • Sprawdzić toczących migracje i
  • i załadować schemat testowy

Oznacza to, że będzie ona wyglądać plik db/schema.rb w celu ustalenia, czy wszelkie migracje istniejące w projekcie, które nie zostały uruchomione. Zakładając, że nie ma żadnych zaległych migracji, załaduje ona następnie bazę danych i przeładuje ją na podstawie zawartości pliku db/schema.rb.

2

rake db: test: prepare jest dobrym rozwiązaniem problemów z PG, takich jak this.

„PG :: UndefinedTable: ERROR: relacja nie istnieje” z właściwą Szyny i konwencja nazewnictwa”, gdzie nie mogłem po prostu wykonać rake db:migrate RAILS_ENV=production

Kiedy, na przykład nie można utworzyć bazę danych testowych dla bug omówione here: "PG undefinedtable błędach użytkownicy relacja nie istnieje"

Wszystko arround tego błędu „PG :: undefinedTable: eRROR: relacja xxxxx nie istnieje”

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej jest dołączyć istotne części odpowiedzi tutaj i podać link do odniesienia. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – Patrick

+0

Przepraszam, edytowałem z objaśnieniami –

Powiązane problemy