पटरियों में लंबित पलायन दिखाएं


जवाबों:


258

rake db:migrate:status(रेल 3 से 5) या rails db:migrate:status(रेल्स 5) इसे पूरा करेगी। देखिए यह कमिट

upइसका मतलब है कि माइग्रेशन चलाया गया है। downमतलब माइग्रेशन नहीं चलाया गया है।


मैं Don't know how to build task 'db:migrate:status'
पीटर एर्लिच

1
@PeterEhrlich: क्या यह दिखाई नहीं देता है rake -Tलेकिन दूसरे लोग करते हैं?
जूनियरको

2
बंडल निष्पादित रेक डीबी: माइग्रेट: स्थिति
नदीम यासीन

2
आप इस कमांड के आउटपुट को कैसे पढ़ते हैं? यदि किसी पंक्ति की स्थिति "डाउन" है, तो क्या इसका मतलब यह है कि यह लंबित माइग्रेशन है?
डेनिस

12
upइसका मतलब है कि माइग्रेशन चलाया गया है। downमतलब माइग्रेशन नहीं चलाया गया है।
जोश

37

वहाँ है 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.

मैं रेल कंटेनर के बीच ऑर्केस्ट्रा निर्भरता में इसे जोड़ना पसंद करता हूं
विंसेंट डी स्मेट

अभी भी वहाँ रेल में 4.1.16
मैग्ने

रेल के साथ 5.1.3 में भी काम करता है
विल्सन सिल्वा

16

यह आदेश सभी माइग्रेशन को उनकी स्थिति ( UPया DOWN) के साथ सूचीबद्ध करेगा

रेल 3 और 4

rake db:migrate:status

रेलें ५

rake db:migrate:status

# Or

rails db:migrate:status



2

Rake -h (help) आज़माएँ और rake -n (= rake --dry-run) पर एक नज़र डालें। तो शायद रेक-एन डीबी जैसे कुछ: माइग्रेट आपको वही मिलना चाहिए जो आप चाहते हैं।


2
यह काम नहीं करेगा। यह सिर्फ प्रिंट करता है: ** इनवोक डीबी: माइग्रेट (फ़र्स्ट_टाइम) ** इनवॉइस एनवायरनमेंट (फ़र्स्ट_टाइम) ** एक्ज़िक्यूट (ड्राई रन) एनवायरनमेंट **
एक्स्यूट्यूट

2

ओपी के लिए पूछ रहा है कि क्या काफी नहीं हो सकता है, लेकिन अगर आप बस जल्दी से जांच करने की जरूरत है कि किसी भी काम के लिए उपयोग किए बिना, एक रेक कार्य में उपयोग के लिए लंबित हैं

रेक db: माइग्रेट: स्टेटस | नीचे बंद करो (अगर आप विंडोज पर काम नहीं कर रहे हैं)

ActiveRecord :: Migration.check_pending! (ActiveRecord उठाता है :: PendingMigrationError जिसे आपको बचाने की आवश्यकता है)

आप जरूरत_ प्रवास का उपयोग कर सकते हैं? विधि: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class


2
ActiveRecord::Migrator.needs_migration?रेल में 5.1
niborg

1

माइग्रेशन स्थिति की जांच करने के लिए निम्नलिखित आदेश:

rake db:migrate:status

या

जब आप अपना सर्वर चलाते हैं, तो यह आपके लंबित माइग्रेशन को चलाने के लिए पहले एक संदेश प्रदर्शित करेगा।



1

यदि आपको यह निर्धारित करने के लिए बैश वन-लाइनर की आवश्यकता है कि कोई माइग्रेशन चलाया जाए या नहीं (उदाहरण के लिए, केवल लंबित माइग्रेशन होने पर एक हेरोकू रिलीज़ चरण कमांड में माइग्रेट करें), यह काम करता है:

(rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.