Wie kann man eine bestimmte Migration rückgängig machen?
Ich habe die folgende Migrationsdatei "db\migrate\20100905201547_create_blocks.rb
Wie kann ich diese Migrationsdatei gezielt zurücksetzen?
759
3
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:
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)
Um NUR EINE bestimmte Migration (AUSSER BETRIEBLICH) zurückzusetzen, verwenden Sie:
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.wird die betreffende Datei zurückgesetzt.
Um die Version aller Migrationen zu ermitteln, können Sie diesen Befehl verwenden:
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
oder
Wenn Sie mehrere Migrationen auf einmal rückgängig machen wollen, übergeben Sie einfach ein Argument:
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:
wobei xxxxx die Versionsnummer der Migration ist.