Czy istnieje polecenie rake, aby usunąć dane z tabel bazy danych?
Jak utworzyć skrypt db: seed, aby wstępnie wypełnić dane w moich tabelach?
ruby-on-rails
database
seeding
Blankman
źródło
źródło
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:
źródło
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
(lubdelete_all
) w pliku seed.db, aby wyczyścić tabelę przedMyModel.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ół ...
źródło
Jak Rails 5 The
rake
narzędzie poleceń został alias jakrails
tak terazrails db:reset
zamiastrake db:reset
będzie działać równie dobrze
źródło
Możesz użyć,
rake db:reset
gdy chcesz usunąć lokalną bazę danych i zacząć od nowa z danymi załadowanymi zdb/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 .
źródło