क्या कोई रेक कार्य है जो एक रेल एप्लिकेशन में लंबित माइग्रेशन दिखाता है?
क्या कोई रेक कार्य है जो एक रेल एप्लिकेशन में लंबित माइग्रेशन दिखाता है?
जवाबों:
rake db:migrate:status
(रेल 3 से 5) या rails db:migrate:status
(रेल्स 5) इसे पूरा करेगी। देखिए यह कमिट ।
up
इसका मतलब है कि माइग्रेशन चलाया गया है। down
मतलब माइग्रेशन नहीं चलाया गया है।
rake -T
लेकिन दूसरे लोग करते हैं?
up
इसका मतलब है कि माइग्रेशन चलाया गया है। down
मतलब माइग्रेशन नहीं चलाया गया है।
वहाँ है rake db:abort_if_pending_migrations
(कम से कम रेल्स 2.3.3 में, सुनिश्चित नहीं है कि इसे कब पेश किया गया था)। विवरण कहता है कि 'यदि कोई माइग्रेशन लंबित है तो एक त्रुटि उठाता है'। यह अन्य कार्यों के लिए एक शर्त के रूप में अधिक उपयोग किया जा रहा है, लेकिन मुझे लगता है कि आप इसे अपने उद्देश्यों के लिए उपयोग कर सकते हैं।
EDIT: यहाँ केवल उत्पन्न होने और 'परीक्षण' माइग्रेशन नहीं चलाने के बाद आउटपुट का एक उदाहरण है
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.
यह आदेश सभी माइग्रेशन को उनकी स्थिति ( UP
या DOWN
) के साथ सूचीबद्ध करेगा
रेल 3 और 4
rake db:migrate:status
रेलें ५
rake db:migrate:status
# Or
rails db:migrate:status
Rake -h (help) आज़माएँ और rake -n (= rake --dry-run) पर एक नज़र डालें। तो शायद रेक-एन डीबी जैसे कुछ: माइग्रेट आपको वही मिलना चाहिए जो आप चाहते हैं।
ओपी के लिए पूछ रहा है कि क्या काफी नहीं हो सकता है, लेकिन अगर आप बस जल्दी से जांच करने की जरूरत है कि किसी भी काम के लिए उपयोग किए बिना, एक रेक कार्य में उपयोग के लिए लंबित हैं
रेक db: माइग्रेट: स्टेटस | नीचे बंद करो (अगर आप विंडोज पर काम नहीं कर रहे हैं)
ActiveRecord :: Migration.check_pending! (ActiveRecord उठाता है :: PendingMigrationError जिसे आपको बचाने की आवश्यकता है)
आप जरूरत_ प्रवास का उपयोग कर सकते हैं? विधि: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
ActiveRecord::Migrator.needs_migration?
रेल में 5.1
यदि आप देखना चाहते हैं कि कितना माइग्रेशन हुआ है या लंबित है तो आप नीचे दिए गए कमांड का उपयोग करके देख सकते हैं।
rails db:migrate:status
इस लिंक पर और अधिक: रेल सक्रिय रिकॉर्ड प्रवासन
यदि आपको यह निर्धारित करने के लिए बैश वन-लाइनर की आवश्यकता है कि कोई माइग्रेशन चलाया जाए या नहीं (उदाहरण के लिए, केवल लंबित माइग्रेशन होने पर एक हेरोकू रिलीज़ चरण कमांड में माइग्रेट करें), यह काम करता है:
(rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
Don't know how to build task 'db:migrate:status'