Ich habe eine dev Ruby on Rails-Datenbank voller Daten. Ich möchte alles löschen und die Datenbank neu erstellen. Ich denke an die Verwendung von etwas wie:
rake db:recreate
Ist dies möglich?
Ich habe eine dev Ruby on Rails-Datenbank voller Daten. Ich möchte alles löschen und die Datenbank neu erstellen. Ich denke an die Verwendung von etwas wie:
rake db:recreate
Ist dies möglich?
Auf Rails 4.2, um alle Daten zu entfernen, aber die Datenbank zu erhalten
$ bin/rake db:purge && bin/rake db:schema:load
https://github.com/rails/rails/blob/4-2-stable/activerecord/CHANGELOG.md
Na ja... Ich habe es gerade ausprobiert, aber die Tabellen und Spalten bleiben nicht erhalten. Sie müssen eine db:migrate nach einer db:purge ausführen. Dadurch werden also keine Tabellen und Spalten erhalten. Die Datenbank selbst bleibt jedoch erhalten, so dass Sie nicht db:create ausführen müssen.
3 Optionen, gleiches Ergebnis:
1. Alle Schritte:
$ rake db:drop # deletes the database for the current env
$ rake db:create # creates the database for the current env
$ rake db:schema:load # loads the schema already generated from schema.rb / erases data
$ rake db:seed # seed with initial data
2. Zurücksetzen:
$ rake db:reset # drop / schema:load / seed
3. Migrieren:zurücksetzen:
$ rake db:migrate:reset # drop / create / migrate
$ rake db:seed
Anmerkungen:
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Ich würde vorschlagen, die am höchsten bewertete Antwort nicht zu berücksichtigen. Meiner Meinung nach
rake db:drop db:create db:schema:load
angemessener sein könnte alsrake db:drop db:create db:migrate
(obwohl ich bereit bin, mich da zu irren).0 Stimmen
Mögliches Duplikat von Zurücksetzen der Datenbank (alles löschen), dann eine Datenbank einrichten
2 Stimmen
rake db:drop db:create db:migrate
0 Stimmen
db:drop + db:create + db:migrate == db:migrate:reset
. Ich greife normalerweise aufdb:schema:load
wenn Migrationen unterbrochen werden. Ich muss die Datenbank nur selten neu erstellen, daher spielt die Geschwindigkeit keine große Rolle. Auch, wenn Sie nicht angewandte Migrationen haben,db:schema:load
ydb:reset
wird sie nicht anwenden. Ich bin mir nicht sicher, ob das ein gutes Argument ist.