Czy istnieje zadanie prowizji, które pokazuje oczekujące migracje w aplikacji railsowej?
ruby-on-rails
rails-migrations
Tylko czytać
źródło
źródło
Don't know how to build task 'db:migrate:status'
na szynach 3.2.8rake -T
ale inne tak?up
oznacza, że migracja została przeprowadzona.down
oznacza, że migracja nie została uruchomiona.Jest
rake db:abort_if_pending_migrations
(przynajmniej w Railsach 2.3.3, nie jestem pewien, kiedy został wprowadzony). Opis mówi „Zgłasza błąd, jeśli są oczekujące migracje”. Wydaje się, że jest to warunek wstępny dla innych zadań, ale myślę, że możesz go użyć do swoich celów.EDYCJA: Oto przykład wyniku po właśnie wygenerowaniu, a nie przeprowadzeniu migracji „testowej”
źródło
To polecenie wyświetli listę wszystkich migracji wraz z ich stanem (
UP
lubDOWN
)Szyny 3 i 4
Szyny 5
źródło
rake db:version
zrobi to na Railsach 2.źródło
Działa to dla szyn 5.2
źródło
Spróbuj rake -h (pomoc) i spójrz na rake -n (= rake --dry-run). Więc prawdopodobnie coś takiego jak rake -n db: migrate powinno dać ci to, czego chcesz.
źródło
Może nie do końca jest to, o co prosi OP, ale jeśli chcesz po prostu szybko sprawdzić, czy jakiekolwiek migracje oczekują na użycie w zadaniu rake, bez uciekania się do
rake db: migrate: status | grep down (może nie działać, jeśli używasz systemu Windows)
ActiveRecord :: Migration.check_pending! (podnosi ActiveRecord :: PendingMigrationError, który musisz uratować)
możesz użyć need_migration? metoda: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
źródło
ActiveRecord::Migrator.needs_migration?
w Railsach 5.1Następujące polecenie, aby sprawdzić stan migracji:
LUB
po uruchomieniu serwera wyświetli się komunikat, aby najpierw przeprowadzić oczekującą migrację.
źródło
Jeśli chcesz zobaczyć, ile migracji jest zrobione lub oczekujące, możesz zobaczyć, używając poniższego polecenia.
Więcej na ten link: Rails Active Record Migration
źródło
Jeśli potrzebujesz jednowierszowego kodu bash, aby określić, czy uruchomić migrację, czy nie (np. Migrować tylko w poleceniu fazy wydania Heroku, gdy istnieje oczekująca migracja), działa to:
źródło