कोड परिवर्तन के बिना रेडोकॉय हरोकू ऐप


88

मैं एक हरोकू ऐप को तैनात करना चाहूंगा जिसे आदर्श रूप से उपयोग किया जाएगा git push -u heroku master । हालांकि यह तभी काम करेगा जब मास्टर को धक्का देने के लिए कोई लंबित कमिट हो।

पुश करने के लिए कुछ भी नहीं होने पर मैं ऐप को कैसे रिडिप्‍लूट कर सकता हूं? मैंने कोशिश की git push -u heroku master -fऔर अभी भी नीचे वही मिलता है

Branch master set up to track remote branch master from heroku.
Everything up-to-date

पुनश्च: मैं मौजूदा ऐप को भी बनाए रखना चाहता हूं, जिसका मतलब है कि मैं इस जवाब का उपयोग नहीं कर सकता https://stackoverflow.com/a/22043184/968442


3
यह एक XY समस्या की तरह लगता है । आप फिर से उसी कोड को फिर से तैयार करके क्या हासिल करने की उम्मीद करते हैं?
क्रिस

1
ऐसा मामला जहां मैंने कुछ कॉन्फिगरर्स को बदल दिया, जो एक रिड्यूस करने के लायक है, लेकिन कोई कमिट नहीं है
nehem

1
एक कॉन्फ़िगर संस्करण सेट करने से आपका एप्लिकेशन पुनः आरंभ हो जाता है। इसे फिर से तैयार किए बिना प्रभावी होना चाहिए। क्या आप अधिक विशिष्ट हो सकते हैं?
क्रिस

2
दुर्भाग्यवश मेरे द्वारा हटाए गए कॉन्फिगरवर DISABLE_COLLECTSTATIC=1, जो कि एक अन्य Django कमांड को लागू करने वाला है, manage.py collectstaticजिसे हरोकू परिनियोजन लॉजिक में शामिल किया गया है।
नेहेम

जवाबों:


139

आम तौर पर एक कॉन्फिग वर्जन सेट करने से आपका एप्लिकेशन फिर से चालू हो जाता है। ज्यादातर स्थितियों में ऐसा करने के बाद फिर से तैयार करने की आवश्यकता नहीं होनी चाहिए।

यदि आपको वास्तव में एक नई तैनाती को ट्रिगर करने की आवश्यकता है तो आप एक नई खाली प्रतिबद्ध जोड़ सकते हैं, फिर हरोकू में फिर से धक्का दें:

git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic"
git push heroku master

नई खाली प्रतिबद्ध एक नियमित प्रतिबद्धता है। इसमें एक हैश, एक लेखक, एक टाइमस्टैम्प, आदि है। इसके माता-पिता के रूप में एक ही पेड़ होगा। इससे आपको पिछले ऐप के समान कोड का उपयोग करके अपने ऐप स्लग को फिर से बनाने के लिए हरोकू का कारण बनना चाहिए।

यह थोड़ा अजीब है, लेकिन यह काम करता है।


काफी उचित लगता है और काम करता है। अब मैं .gitgithub से इस कमेंट को छुपाने के लिए बैकअप / रिपॉजिटरी ( ) को पुनर्स्थापित करने के लिए परीक्षा देता हूं ।
नीम

@itsneo, मैं परेशान नहीं होगा। यह एक बदसूरत कमिटमेंट है, लेकिन अगर आप पिछली कमेटी के ऊपर कोड लिखते रहेंगे तो आपको अगली बार हेरोकू पर जोर देना पड़ेगा। यह एक महान आदत नहीं है, हालांकि यह कभी-कभी आवश्यक हो सकता है ...
क्रिस

यहां तक ​​कि git commit --allow-emptyमैं Everything up-to-dateहेरोकू से प्राप्त कर रहा हूं ...
बेनी न्युगबॉएर

@ बेनीइजेनबॉउर, कृपया अपनी ओर देखें git log। क्या आपने सफलतापूर्वक धक्का देने से पहले एक नई प्रतिबद्धता बनाई थी?
क्रिस

4
आह, मैं मुद्दा देखता हूं! मैं एक अलग स्थानीय शाखा (से master) में था। इसलिए मुझे अमल करना पड़ा git push -f heroku the_branch_i_changed:master:।
बेनी न्युगबॉएर

22

आप इसे यूआई से भी कर सकते हैं!

  1. अपने Herokuडैशबोर्ड पर लॉगिन करें और deployअनुभाग पर जाएं
  2. Manual deployविकल्प खोजें

Deploy Branchबटन मारो !

यहाँ छवि विवरण दर्ज करें


2
यह ध्यान देने योग्य है कि आपके पास इस विकल्प के उपलब्ध होने के लिए आपका ऐप GitHub से जुड़ा होना चाहिए। यदि आप ऐप को अपने GitHub रेपो से कनेक्ट किए बिना हरोकू गिट तैनाती की विधि का उपयोग कर रहे हैं, तो यह तुरंत स्पष्ट नहीं है कि मैन्युअल रूप से कैसे तैनात किया जाए।
डेरेक

11

अब हेरोकू कमांड-लाइन के लिए एक प्लगइन भी है जो आपको हाल ही में तैनात स्लग को फिर से जारी करने की अनुमति देता है।

Https://www.npmjs.com/package/heroku-releases-retry देखें


पहले तो मैंने सोचा कि यह समाधान है, लेकिन वास्तव में यह केवल रिडम्पल करता है, लेकिन पुनर्निर्माण नहीं करता है। लेकिन एक नई प्रतिबद्धता को आगे बढ़ाते हुए आपको इतिहास से
छेड़छाड़

4

आप दौड़ सकते हैं heroku restart --app app_nameऔर आप जाने के लिए अच्छे हैं।


3
यह एप्लिकेशन को पुनर्निर्माण नहीं करता है, यह केवल इसे फिर से शुरू करता है
PanMan

@PmanMan सवाल कहता है कि "मैं ऐप को फिर से कैसे तैयार कर सकता हूं जबकि धक्का देने के लिए कुछ नहीं है?"। यह एप्लिकेशन को फिर से बनाने के लिए नहीं, बल्कि फिर से शुरू करने के लिए कह रहा है, और यह देखते हुए कि कोई भी बदलाव नहीं हुआ है, मैं नहीं देखता कि आप क्यों चाहते हैं।
Leandro

1
यह स्पष्ट रूप से कहता है "पुनः आरंभ करें" नहीं "पुनः आरंभ करें।" उदाहरण के लिए, मुझे पुनः आरंभ करने की आवश्यकता है (पुनः आरंभ नहीं), क्योंकि मैं अपने ऐप को हेरोकू के साथ डॉक्यूरीज़ करने की कोशिश कर रहा हूं, और जैसा कि मैं डिबगिंग कर रहा हूं, मैं अपने गिट वृक्ष को संभावित रूप से प्रदूषित नहीं करना चाहता। यह कैसे मैं इस एसओ सवाल पर समाप्त हो गया है।
माइक के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.