Ich habe die folgende Migrationsdatei "db\migrate\20100905201547_create_blocks.rb
Wie kann ich diese Migrationsdatei gezielt zurücksetzen?
rake db:rollback STEP=1
ist eine Möglichkeit, dies zu tun, wenn die Migration, die Sie rückgängig machen wollen, die letzte ist, die durchgeführt wurde. Sie können 1 für so viele Migrationen ersetzen, wie Sie zurückgehen möchten.
Zum Beispiel:
rake db:rollback STEP=5
Macht auch alle später erfolgten Migrationen rückgängig (4, 3, 2 und auch 1).
Um alle Migrationen bis zu (und einschließlich) einer Zielmigration rückgängig zu machen, verwenden Sie: (Dieser korrigierte Befehl wurde NACH all den Kommentaren hinzugefügt, die auf den Fehler im ursprünglichen Beitrag hingewiesen haben)
rake db:migrate VERSION=20100905201547
Um NUR EINE bestimmte Migration (AUSSER BETRIEBLICH) zurückzusetzen, verwenden Sie:
rake db:migrate:down VERSION=20100905201547
Beachten Sie, dass dies NICHT alle dazwischenliegenden Migrationen rückgängig macht - nur die eine, die aufgelistet ist. Wenn das nicht das ist, was Sie beabsichtigt haben, können Sie rake db:migrate
ausführen und es wird nur diese eine Migration erneut ausgeführt und alle anderen, die vorher nicht zurückgerollt wurden, übersprungen.
rake db:migrate:down VERSION=20100905201547
wird die betreffende Datei zurückgesetzt.
Um die Version aller Migrationen zu ermitteln, können Sie diesen Befehl verwenden:
rake db:migrate:status
Oder das Präfix des Dateinamens der Migration ist einfach die Version, die Sie zurücksetzen müssen.
Siehe den Eintrag im Ruby on Rails-Leitfaden zu Migrationen.
Sie können Ihre Migration zurücksetzen, indem Sie rake db:rollback
mit verschiedenen Optionen verwenden. Die Syntax ist je nach Ihren Anforderungen unterschiedlich.
Wenn Sie nur die letzte Migration rückgängig machen wollen, können Sie entweder
rake db:rollback
oder
rake db:rollback STEP=1
Wenn Sie mehrere Migrationen auf einmal rückgängig machen wollen, übergeben Sie einfach ein Argument:
rake db:rollback STEP=n
wobei n
die Anzahl der zurückzusetzenden Migrationen ist, gezählt ab der letzten Migration.
Wenn Sie ein Rollback zu einer bestimmten Migration durchführen möchten, sollten Sie die Version der Migration im Folgenden angeben:
rake db:migrate:down VERSION=xxxxx
wobei xxxxx die Versionsnummer der Migration ist.