Odpowiedzi:
Używam, rake db:reset
które upuszcza, a następnie ponownie tworzę bazę danych i dołączam plik seeds.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Możesz usunąć wszystko i odtworzyć bazę danych + nasiona za pomocą obu:
rake db:reset
: ładuje z schema.rbrake db:drop db:create db:migrate db:seed
: obciążenia z migracjiUpewnij się, że nie masz żadnych połączeń z db (serwer rails, klient sql ...), w przeciwnym razie baza danych nie spadnie.
schema.rb to migawka bieżącego stanu Twojej bazy danych wygenerowana przez:
rake db:schema:dump
Jeśli nie masz ochoty porzucić i odtworzyć całego shebang tylko po to, aby ponownie załadować dane, możesz użyć MyModel.destroy_all
(lub delete_all
) w pliku seed.db, aby wyczyścić tabelę przed MyModel.create!(...)
załadowaniem danych przez instrukcje. Następnie możesz powtarzać db:seed
operację w kółko. (Oczywiście dotyczy to tylko tabel, do których załadowano dane, a nie pozostałych).
Na https://stackoverflow.com/a/14957893/4553442 jest „brudny hack”, który polega na dodaniu operacji „de-seeding” podobnej do migracji w górę iw dół ...
Jak Rails 5 The rake
narzędzie poleceń został alias jak rails
tak teraz
rails db:reset
zamiast rake db:reset
będzie działać równie dobrze
Możesz użyć, rake db:reset
gdy chcesz usunąć lokalną bazę danych i zacząć od nowa z danymi załadowanymi z db/seeds.rb
. Jest to przydatne polecenie, gdy wciąż zastanawiasz się nad schematem i często musisz dodać pola do istniejących modeli.
Po użyciu polecenia resetowania wykona ono następujące czynności: Upuść bazę danych: rake db:drop
Załaduj schemat: rake db:schema:load
Wypełnij dane:rake db:seed
Ale jeśli chcesz całkowicie porzucić swoją bazę danych, możesz użyć rake db:drop
. Usunięcie bazy danych spowoduje również usunięcie wszelkich konfliktów schematów lub złych danych. Jeśli chcesz zachować posiadane dane, wykonaj ich kopię zapasową przed uruchomieniem tego polecenia.
To jest szczegółowy artykuł o najważniejszych poleceniach bazy danych rake .