Antworten:
Ich verwende, rake db:reset
was 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:seed
Vorgang 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 rake
Befehlszeilentool rails
jetzt als Alias ausgeführt
rails db:reset
anstatt rake db:reset
wird genauso gut funktionieren
Sie können verwenden, rake db:reset
wenn 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 .