2012-02-08 17 views
7

के दौरान स्थानीय फ़ाइल लोड करें मेरे पास एक आयात उपयोगिता है जिसका उपयोग मैं उसकेोकू पर रिकॉर्ड बनाने के लिए करना चाहता हूं।हरोकू रेक कार्य

मैं इसे अपनी विकास मशीन पर फ़ाइल से डेटा आयात करने के लिए भंडार में फ़ाइल को जांचने के बिना उपयोग करना चाहता हूं। क्या रेक रेक या हेरोकू मणि के साथ ऐसा करने का कोई तरीका है?

मैं फ़ाइल को एक वेब फॉर्म में अपलोड कर सकता हूं जो समय निकाल सकता है, या मैं फ़ाइल को एस 3 पर स्टोर कर सकता हूं, लेकिन यह अपेक्षाकृत अधिक लगता है।

ऐसा करने का कोई आसान तरीका है?

उत्तर

2

नहीं, heroku run के साथ चलने वाली किसी भी चीज़ से आपकी विकास मशीन पर स्थानीय फ़ाइलों तक पहुंचना संभव नहीं है (जिसमें रेक कार्य शामिल हैं, मान लीजिए कि आप देवदार हैं)।

मैं निम्नलिखित दृष्टिकोण लिया है:

  • बीज डेटा रेपो में संग्रहित है और लोड seed_fu का उपयोग कर

  • गैर बीज डेटा एक वेब फार्म के माध्यम से एस 3 के लिए अपलोड की गई है, और लिंक किए गए पेपरक्लिप का उपयोग करके DataFile मॉडल (थोड़ा ओवरकिल, लेकिन मैं इसे कहीं और छवियों के लिए उपयोग कर रहा था)। मैं फिर फ़ाइलों को संसाधित करने के लिए रेक कार्य या देरी कार्यकर्ताओं का उपयोग कर सकता हूं। यह निश्चित रूप से ओवरहेड का थोड़ा सा है।

5

आप अपनी मशीन पर मानक से पढ़ सकते हैं।

heroku run rake whatever <./file 
+2

क्या कार्य परिभाषा के दायरे में इस फ़ाइल डेटा तक पहुँचने के लिए वाक्यविन्यास हो सकता है? – zrisher

+1

'$ stdin.read' मेरे लिए काम करता है। – dojosto

1

मुझे इनपुट डेटा के लिए गिस्ट का उपयोग करने के लिए वास्तव में एक सरल दृष्टिकोण मिला है। आप अपने डेटा को एक ग्रिस्ट में कॉपी और पेस्ट करते हैं और फिर कच्चे गिस्ट को लिंक को अपने रेक कार्य के लिए एक पैरा के रूप में पास करते हैं। फिर रेक कार्य में आप दूरस्थ फ़ाइल खोलते हैं।

उदाहरण के लिए, यदि आप एक YAML फ़ाइल लोड कर रहे हैं, तो:

YAML.parse(open(file_name)).to_ruby.with_indifferent_access 
संबंधित मुद्दे