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?
Ich habe heute ein paar Änderungen an meinem Rails-Schema vorgenommen. Ich stellte fest, dass ich zwei zusätzliche Modelle in einer Hierarchie benötigte und einige andere gelöscht werden mussten. Es waren viele kleine Änderungen an den Modellen und Controllern erforderlich.
Ich fügte die beiden neuen Modelle hinzu und erstellte sie mit:
rake db:migrate
Dann habe ich die Datei schema.rb bearbeitet. Ich entfernte manuell die alten Modelle, die nicht mehr benötigt wurden, änderte das Fremdschlüsselfeld als erforderlich und ordnete es einfach ein wenig neu an, um es für mich übersichtlicher zu machen. I gelöscht alle Migrationen und führte dann den Build erneut durch:
rake db:reset
Es hat perfekt funktioniert. Natürlich müssen alle Daten neu geladen werden. Rails erkannte, dass die Migrationen gelöscht worden waren und setzte die Hochwassermarke zurück:
-- assume_migrated_upto_version(20121026094813, ["/Users/sean/rails/f4/db/migrate"])
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.