Gibt es eine Rake-Aufgabe, die die ausstehenden Migrationen in einer Rails-App anzeigt?
ruby-on-rails
rails-migrations
Schreibgeschützt
quelle
quelle
Don't know how to build task 'db:migrate:status'
steige auf Schienen 3.2.8rake -T
aber die anderen?up
bedeutet, dass die Migration ausgeführt wurde.down
bedeutet, dass die Migration nicht ausgeführt wurde.Es gibt
rake db:abort_if_pending_migrations
(zumindest in Rails 2.3.3, nicht sicher, wann es eingeführt wurde). In der Beschreibung heißt es: "Löst einen Fehler aus, wenn Migrationen ausstehen". Dies scheint eher als Voraussetzung für andere Aufgaben zu dienen, aber ich vermute, Sie könnten es für Ihre Zwecke verwenden.BEARBEITEN: Hier ist ein Beispiel für die Ausgabe, nachdem gerade eine Testmigration generiert und nicht ausgeführt wurde
quelle
Dieser Befehl listet alle Migrationen mit ihrem Status (
UP
oderDOWN
) auf.Schienen 3 und 4
Schienen 5
quelle
rake db:version
wird dies auf Schienen 2 erreichen.quelle
Dies funktioniert für Schienen 5.2
quelle
Versuchen Sie es mit Rake -h (Hilfe) und sehen Sie sich Rake -n (= Rake - Trockenlauf) an. Also wahrscheinlich so etwas wie rake -n db: migrate sollte dir das bringen, was du willst.
quelle
Möglicherweise nicht ganz das, wonach OP fragt, aber wenn Sie nur schnell überprüfen müssen, ob Migrationen für die Verwendung in einer Rake-Aufgabe anstehen, ohne darauf zurückgreifen zu müssen
Rechen db: migrate: status | grep down (funktioniert möglicherweise nicht, wenn Sie unter Windows arbeiten)
ActiveRecord :: Migration.check_pending! (löst ActiveRecord :: PendingMigrationError aus, den Sie retten müssen)
Sie können Bedürfnisse_Migration verwenden? Methode: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
quelle
ActiveRecord::Migrator.needs_migration?
in Rails 5.1Folgender Befehl zum Überprüfen des Migrationsstatus:
ODER
Wenn Sie Ihren Server ausführen, wird eine Meldung angezeigt, dass Ihre ausstehende Migration zuerst ausgeführt werden soll.
quelle
Wenn Sie sehen möchten, wie viel Migration durchgeführt wird oder aussteht, können Sie den folgenden Befehl verwenden.
Mehr zu diesem Link: Rails Active Record Migration
quelle
Wenn Sie einen Bash-Einzeiler benötigen, um zu bestimmen, ob eine Migration ausgeführt werden soll oder nicht (z. B. nur in einem Heroku-Release-Phasenbefehl migrieren, wenn eine Migration aussteht), funktioniert dies wie folgt:
quelle