Raylarda bekleyen taşıma işlemlerini göster


Yanıtlar:


258

rake db:migrate:status(Raylar 3 ila 5) veya rails db:migrate:status(Raylar 5) bunu başaracaktır. Bkz bu taahhüt .

uptaşıma işleminin yürütüldüğü anlamına gelir. down, taşıma işleminin yürütülmediği anlamına gelir.


Don't know how to build task 'db:migrate:status'3.2.8
Peter Ehrlich

1
@PeterEhrlich: İçinde görünmüyor rake -Tama diğerleri görünüyor mu?
jrdioko

2
paket exec rake db: göç: durum
Nadeem Yasin

2
Bu komutun çıktısını nasıl okuyorsunuz? Bir satırın durumu "aşağı" ise, bu, bekleyen bir taşıma anlamına mı gelir?
Dennis

12
uptaşıma işleminin yürütüldüğü anlamına gelir. down, taşıma işleminin yürütülmediği anlamına gelir.
Josh

37

Var rake db:abort_if_pending_migrations(en azından Raylar 2.3.3'te, ne zaman tanıtıldığından emin değil). Açıklama 'Bekleyen taşıma işlemleri varsa bir hata oluşturur' yazıyor. Bu, diğer görevler için daha çok bir önkoşul olarak kullanılmış gibi görünüyor, ancak sanırım bunu amaçlarınız için kullanabilirsiniz.

EDIT: Yeni oluşturduktan ve bir 'test' taşıma çalıştırmadan sonra çıktıya bir örnek

rails_project theIV$ rake db:abort_if_pending_migrations
(in /Users/theIV/Sites/rails_project/)
You have 1 pending migrations:
  20090828200602 Test
Run "rake db:migrate" to update your database then try again.

Bunu ray konteynerleri arasındaki bağımlılıkları düzenlemek için eklemeyi seviyorum
Vincent De Smet

Hala orada Raylar 4.1.16
Magne

Raylarda 5.1.3 de çalışıyor
Wilson Silva

16

Bu komut, tüm taşıma işlemlerini durumlarıyla ( UPveya DOWN) listeler

Raylar 3 ve 4

rake db:migrate:status

Raylar 5

rake db:migrate:status

# Or

rails db:migrate:status


6

Bu, raylar 5.2 için çalışır

ActiveRecord::Base.connection.migration_context.needs_migration?

2

Komisyon -h (yardım) deneyin ve komisyon -n (= komisyon - kuru-çalışma) bir göz atın. Muhtemelen komisyon gibi bir şey -n db: migrate size istediğinizi elde etmelidir.


2
Bu işe yaramaz. Yalnızca yazdırır: ** Çağırma db: migrate (ilk_saat) ** Ortamı çağırma (ilk_saat) ** Yürütme (kuru çalıştırma) ortam ** Yürütme (kuru çalıştırma) db: migrate
jrdioko

2

OP'nin istediği şey tam olarak olmayabilir, ancak herhangi bir taşıma işleminin bir komisyon görevinde kullanılmayı bekleyen olup olmadığını hızlıca kontrol etmeniz gerekiyorsa,

tırmık db: göç: durum | grep down (Windows'daysanız çalışmayabilir)

ActiveRecord :: Migration.check_pending! (kurtarmanız gereken ActiveRecord :: PendingMigrationError öğesini yükseltir)

ihtiyaçlar_migration kullanabilirsiniz? yöntem: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class


2
ActiveRecord::Migrator.needs_migration?in Rails 5.1
niborg

1

Taşıma durumunu kontrol etmek için aşağıdaki komut:

rake db:migrate:status

VEYA

sunucunuzu çalıştırdığınızda, beklemedeki taşımanızı çalıştırmak için bir mesaj görüntülenir.


1

Ne kadar taşıma yapıldığını veya beklemede olduğunu görmek istiyorsanız aşağıdaki komutu kullanarak görebilirsiniz.

rails db:migrate:status

Bu bağlantı hakkında daha fazlası: Rails Active Record Migration


1

Bir geçişin yürütülüp yürütülmeyeceğini belirlemek için bir bash tek satırına ihtiyacınız varsa (örneğin, yalnızca bekleyen bir geçiş olduğunda bir Heroku yayınlama aşaması komutunda geçiş), bu işe yarar :

(rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.