Zresetuj bazę danych (Wyczyść wszystko), a następnie zalej bazę danych

Czy istnieje polecenie rake, które usuwa dane z tabel bazy danych?

Jak utworzyć skrypt db: seed, aby wstępnie wypełnić dane do moich tabel?

Author: Tiny Giant, 2010-10-23

5 answers

Używam rake db:reset, który upuszcza, a następnie odtwarza bazę danych i zawiera twoje nasiona.plik rb. http://guides.rubyonrails.org/migrations.html#resetting-the-database

 268
Author: JackCA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 05:41:43

Możesz usunąć wszystko i odtworzyć bazę danych + nasiona za pomocą obu:

  1. rake db:reset: ładuje ze schematu.rb
  2. rake db:drop db:create db:migrate db:seed: ładunki z migracji

Upewnij się, że nie masz żadnych połączeń z db (rails server, SQL client..) lub db nie spadnie.

Schemat.rb jest migawką aktualnego stanu bazy danych wygenerowaną przez:

rake db:schema:dump
 156
Author: laffuste,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-14 13:48:39

Jeśli nie masz ochoty na upuszczenie i odtworzenie całego shebanga tylko po to, aby przeładować dane, możesz użyć MyModel.destroy_all (LUB delete_all) w nasionie.plik db, aby wyczyścić tabelę, zanim twoje polecenia MyModel.create!(...) załadują dane. Następnie możesz ponowić operację db:seed w kółko. (Oczywiście dotyczy to tylko tabel, do których załadowałeś dane, a nie reszty z nich.)

Jest "brudny hack" na https://stackoverflow.com/a/14957893/4553442 aby dodać operację "odsiewania" podobną do migruję w górę i w dół...

 6
Author: Tom Hundt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23

Od Rails 5, narzędzie linii poleceń rake zostało aliasowane jako rails więc teraz

rails db:reset zamiast rake db:reset

Będzie działać równie dobrze

 3
Author: DazBaldwin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-15 07:44:58

Możesz użyć rake db:reset, gdy chcesz upuścić 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 reset wykonamy następujące czynności: Drop the database: rake db:drop Załaduj schemat: rake db:schema:load Seed danych: rake db:seed

Ale jeśli chcesz całkowicie porzucić swoją bazę danych, możesz użyć rake db:drop. Opuszczenie bazy danych spowoduje również usunięcie dowolnego schematu konflikty lub złe dane. Jeśli chcesz zachować posiadane dane, pamiętaj, aby wykonać ich kopię zapasową przed uruchomieniem tego polecenia.

Jest to szczegółowy artykuł o najważniejszych poleceniach bazy danych rake .

 0
Author: Nesha Zoric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-29 14:13:50