$ बंडल कार्यकारी रेक db: विस्थापित
Gemfile में निर्दिष्ट रेक कार्य db:migrate
निष्पादित करने के लिए रेक के संस्करण का उपयोग करता है।
लेकिन वहाँ कोई रेक मणि Gemfile में निर्दिष्ट है!
हाँ, पर एक रेक मणि कुछ अन्य मणि की निर्भरता के रूप में स्थापित किया गया था - Gemfile.lock में लग रहे हो। तो नियम होना चाहिए: Gemfile.lock में निर्दिष्ट रेक के संस्करण का उपयोग करता है।
लेकिन Gemfile.lock किसी विशेष संस्करण निर्दिष्ट नहीं है - यह एक संस्करण x.y से अधिक निर्दिष्ट करता है!
फिर नियम होना चाहिए: रेक कि वर्तमान gemset में स्थापित किया गया था के संस्करण का उपयोग करता है।
$ रेक db: विस्थापित
आम तौर पर, जब आप कमांड लाइन पर कोई आदेश जारी करता है, उदा रेक, आपके सिस्टम अपने पथ वातावरण चर में निर्दिष्ट निर्देशिका की सूची में आदेश के लिए खोज करता है। कमांड वाली पहली निर्देशिका कमांड का संस्करण है जिसका उपयोग किया जाता है।यह है कि जो निर्देशिका देखने के लिए, आप कर सकते हैं:
$ which rake
तो अगर आप पर अमल,
$ rake db:migrate
कि एक आप bundle install
के साथ स्थापित किया तुलना में एक अलग रेक मणि का उपयोग कर सकते हैं। लेकिन, भले ही आपके सिस्टम को bundle exec
के समान रेक संस्करण मिल जाए, फिर भी आपके प्रोजेक्ट के रत्न के बाहर के स्थानों में रेक स्रोत कोड द्वारा आवश्यक किसी भी रत्न की खोज की जाएगी।
$ rake db:migrate
चीजों को पेंच कर सकते हैं: इसलिए, कई मायनों कि अभी कर रहे हैं।
रूबी ऑन रेल्स ट्यूटोरियल किताब (नि: शुल्क ऑनलाइन), अनुभाग 3.6 के मुताबिक, अगर आप rvm उपयोग कर रहे हैं 1.11.x + तो आप bundle exec
साथ आदेशों प्रस्तावना की जरूरत नहीं है।
यदि आप हर समय बंडल निष्पादन टाइप करने से थक जाते हैं, तो आप आरवीएम को कॉन्फ़िगर कर सकते हैं, इसलिए यह आवश्यक नहीं है: http://ruby.railstutorial.org/chapters/static-pages#sec:eliminating_bundle_exec –
नोट: बंडल मैन पेज बदल गया है, इस तिथि के रूप में सही है: http://bundler.io/v1.3/man/bundle-exec.1.html –
'बंडल निष्पादन' का उपयोग करने का एक अच्छा दुष्प्रभाव यह है कि यह आपको भी बताएगा यदि आपको Gemfile.lock फ़ाइल की तुलना में याद आ रही रत्नों के संस्करण स्थापित करने के लिए 'बंडल इंस्टॉल' चलाया जाना चाहिए। –