2010-02-10 12 views
10

Das ist also mein erstes echtes Ruby on Rails Projekt. Ich habe meine Lektion gelernt - ich habe nicht alle Änderungen mit Migrationen vorgenommen, also sind die Dinge etwas durcheinander.Wie man zum Anfang zurückrollt und neue Migrationen neu erstellt/neu erstellt

Was ist der beste Weg, um mit neuen Migrationsdateien neu zu beginnen und das Schema usw. neu aufzubauen? Mein Projekt ist zu weit entfernt, um das gesamte Projekt wieder aufzubauen, aber nicht weit genug, um die Migrationen, die ich bisher erlebt habe, zu verlieren. Es macht mir auch nichts aus, die Daten in der Datenbank zu verlieren. Ich habe versucht, zum Anfang zurückzurollen, aber einiges davon versagt.

Ich weiß, dass dies ein schlechter Zustand ist, aber Lektion gelernt.

EDIT: Ich löschte nur alle Migrationsdateien und baute die Schemadatei mit db: schema: dump neu. Ich nehme an, dies bringt mich in einen sauberen Zustand mit meiner bestehenden Datenbank, nur verloren Migrationen.

Antwort

5

Ihre schema.rb Datei das tatsächliche Schema aus der Datenbank enthalten soll. Sie können es als Ausgangspunkt für die Erstellung von Migrationen verwenden. Sie könnten eine neue Migration für jede Tabelle mit dem Parameter erstellen, um die alte Tabelle zu überschreiben. Danach könnten Sie einfach die alten Migrationen löschen (Sie müssten wahrscheinlich auch ihre Einträge aus der schema_migrations-Tabelle löschen).

Eine weitere Option wäre, die alten Migrationen nur so zu aktualisieren, dass sie Ihrem aktuellen Schema entsprechen.

+0

Danke - Ich habe nur die Migrationen gelöscht, geleert die schema_migrations Tabelle, dann lief 'Rake db: reset'. Mein Schema war nicht vollständig auf dem neuesten Stand, also musste ich danach einige Änderungen an der db vornehmen. Wenn ich das nochmal machen müsste, würde ich dasselbe machen, aber versuchen herauszufinden, ob es eine Möglichkeit gibt, die Schemadatei vom aktuellen Status der Datenbank wiederherzustellen. – 99miles

7

Wenn Sie nicht besorgt über den Verlust von Daten dann tun

rake db:purge 

Es sollte nur Ihre Datenbank löscht

+9

Dies ist Änderungen an Rake db: Drop in Rails 3 (Rake db: drop: alles für alle Umgebungen zu löschen) – jvatic

+0

Rake db: reset ist mehr wie es – montrealmike

9

wenn Sie einige Schritte migrieren möchten sichern Sie können

rake db:rollback STEP=2 

dieser Befehl Ihre Datenbank 2 Migrationen zurück wandern. Wenn Sie weitere Hilfe mit Harke Befehlen benötigen, jus Typ

rake -T 

, dass die Aufgaben alles, was Sie in Ihrer Anwendung haben Befehl list.

+0

Es listet alle Befehle auf, die eine Beschreibung haben. – Timo

Verwandte Themen