Antworten:
Ich verwende, rake db:resetwas löscht und dann die Datenbank neu erstellt und Ihre seeds.rb-Datei enthält.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Sie können alles löschen und Datenbank + Seeds mit beiden neu erstellen:
rake db:reset: Lädt aus schema.rbrake db:drop db:create db:migrate db:seed: Lasten von MigrationenStellen Sie sicher, dass Sie keine Verbindungen zu db (Rails Server, SQL Client ..) haben, da sonst die Datenbank nicht unterbrochen wird.
schema.rb ist eine Momentaufnahme des aktuellen Status Ihrer Datenbank, die generiert wurde von:
rake db:schema:dump
Wenn Sie nicht den gesamten Shebang löschen und neu erstellen möchten, nur um Ihre Daten neu zu laden, können Sie MyModel.destroy_all(oder delete_all) in der Datei seed.db verwenden, um eine Tabelle zu bereinigen, bevor Ihre MyModel.create!(...)Anweisungen die Daten laden. Dann können Sie den db:seedVorgang immer wieder wiederholen . (Dies betrifft natürlich nur die Tabellen, in die Sie Daten geladen haben, nicht den Rest.)
Unter https://stackoverflow.com/a/14957893/4553442 gibt es einen "Dirty Hack" , um eine "De-Seeding" -Operation hinzuzufügen, die der Migration nach oben und unten ähnelt ...
Ab Rails 5 wurde das rakeBefehlszeilentool railsjetzt als Alias ausgeführt
rails db:reset anstatt rake db:reset
wird genauso gut funktionieren
Sie können verwenden, rake db:resetwenn Sie die lokale Datenbank löschen und mit den von neu geladenen Daten neu beginnen möchtendb/seeds.rb . Dies ist ein nützlicher Befehl, wenn Sie Ihr Schema noch herausfinden und häufig Felder zu vorhandenen Modellen hinzufügen müssen.
Sobald der Befehl zum Zurücksetzen verwendet wird, wird Folgendes ausgeführt: Löschen der Datenbank: rake db:drop
Laden des Schemas: rake db:schema:load
Setzen Sie die Daten:rake db:seed
Wenn Sie Ihre Datenbank jedoch vollständig löschen möchten, können Sie sie verwenden rake db:drop. Durch das Löschen der Datenbank werden auch Schemakonflikte oder fehlerhafte Daten entfernt. Wenn Sie die vorhandenen Daten behalten möchten, müssen Sie sie sichern, bevor Sie diesen Befehl ausführen.
Dies ist ein ausführlicher Artikel über die wichtigsten Rake-Datenbankbefehle .