कैपिस्ट्रानो के साथ सर्वर पर कमांड कैसे निष्पादित करें? - रूबी-ऑन-रेल, तैनाती, एसएसएच, कैपिस्ट्रानो

मेरे पास update_feeds नामक एक बहुत ही सरल कार्य है:

desc "Update feeds"
task :update_feeds do
run "cd #{release_path}"
run "script/console production"
run "FeedEntry.update_all"
end

जब भी मैं यह कार्य चलाने की कोशिश करता हूं, मुझे निम्न संदेश मिलता है:

[out :: mysite.com] sh: script/console: No such file or directory

मैंने इसे समझ लिया क्योंकि मैं सही निर्देशिका में नहीं हूं, लेकिन कोशिश कर रहा हूं

run "cd ~/user/mysite.com/current"

के बजाय

run "cd #{release_path}"

भी विफल रहता है। मैन्युअल रूप से (एसएसएच के माध्यम से) सटीक वही आदेश चलाना पूरी तरह से काम करता है। क्यों "capistrano ठीक से नहीं कर सकते हैं cd (निर्देशिका बदलें) कमांड चलाने के लिए साइट निर्देशिका में?

धन्यवाद!


अद्यतन करें: एक जवाब चुना, और उत्तर देने वाले सभी के लिए आपको बहुत बहुत धन्यवाद। सबसे अच्छा जवाब वास्तव में हो सकता है सर्वर गलती पर एक, हालांकि दोनों की गड़बड़ी (सर्वर गलती पर एक और स्टैक ओवरफ्लो पर एक) वही है।

उत्तर:

उत्तर № 1 के लिए 1

आप स्क्रिप्ट / धावक का उपयोग करना चाहते हैं। यह उस विधि को निष्पादित करने के लिए ऐप का एक उदाहरण शुरू करता है जिसे आप कॉल करना चाहते हैं। इसकी धीमी गति हालांकि इसे आपके सभी रेल ऐप को लोड करना है।

~/user/mysite.com/current/script/runner -e production FeedEntry.update_all 2>&1

आप इसे कैपिस्ट्रानो कार्य से चला सकते हैं।


उत्तर № 2 के लिए 1

मैं कल्पना नहीं कर सकता कि आप दूरस्थ रूप से कैपिस्ट्रानो से रेल कंसोल में लॉग इन करने में सक्षम होंगे। मेरा सुझाव है कि आप अपने मॉडल विधि को रेक कार्य से कॉल करें।

मैं Capistrano से एक रेक कार्य कैसे चला सकता हूँ?

आपके प्रश्न के बाद के हिस्से के लिए, क्या आप उसी उपयोगकर्ता खाते के साथ कैपिस्ट्रानो के रूप में सर्वर में लॉग इन कर रहे हैं?


संबंधित सवाल
सबसे लोकप्रिय