2011-08-09 9 views
13

मैंने एप्लिकेशन की कॉन्फ़िगरेशन बदल दी और नए कोड को उत्पादन सर्वर पर तैनात किया। चूंकि एप्लिकेशन कॉन्फ़िगरेशन फ़ाइलों का विश्लेषण नहीं करता है और कैश फ़ाइलों को अद्यतन करने के लिए आवश्यक प्रीकंपील्ड क्लास का उपयोग करता है।Symfony2 एप्लिकेशन के लिए उत्पादन पर कैश को सही तरीके से अमान्य कैसे करें?

app/console cache:warmup और app/console cache:clear आदेश हैं। लेकिन इन आदेशों का आह्वान करने के बाद कैश को अपडेट नहीं किया गया था, इसलिए मुझे मैन्युअल रूप से ऐप/कैश फ़ोल्डर को हटाना पड़ा।

मैन्युअल हटाने बहुत खतरनाक ऑपरेशन है क्योंकि यह परमाणु नहीं है इसलिए मैं अनुरोध के दौरान कैश का हिस्सा निकाल सकता हूं और इससे घातक त्रुटि हो सकती है।

मुझे कैश को फिर से लोड करना चाहिए?

+1

क्या इतना बुरा है टी मैन्युअल हटाने? – Gigala

+0

यदि आपने हाइलोड नहीं किया है, तो मैन्युअल हटाने के साथ कुछ भी बुरा नहीं है। केवल कैश और लॉग फ़ोल्डर्स के लिए अनुमतियां अमान्य हो सकती हैं। – lisachenko

उत्तर

23

कोशिश कर सकते हैं आप env पैरामीटर याद किया: app/console cache:clear --env=prod --no-debug

+1

धन्यवाद! अपने उत्तर को एक फिक्स के साथ स्वीकार करें: ऐप/कंसोल कैश: clear --env = prod --no-debug – lisachenko

+1

2.1 ऐप/कंसोल के बाद से जब कोई '--env' ध्वज प्रदान नहीं किया गया था तो यह' getenv ('SYMFONY_ENV') 'या 'देव'। इसके अलावा यदि '--env = prod' की आपूर्ति की गई थी तो यह' --no-debug 'को मजबूर करेगा' पूर्व-डीबग 'से पहले स्पष्ट रूप से '$ env = $ इनपुट-> getParameterOption (array (' - -env ',' -e '), getenv (' SYMFONY_ENV ')?:' dev '); $ डीबग = getenv ('SYMFONY_DEBUG')! == '0' &&! $ इनपुट-> है पैरामीटर ऑप्शन (सरणी ('- नो-डीबग', '')) && $ env! == 'prod'; 'https : //github.com/symfony/symfony-standard/blob/master/app/console – fyrye

1

मेरा मानना ​​है आप app/console cache:clear --no-warmup

+0

धन्यवाद, लेकिन मुझे संदेह है कि हाइलोड के लिए कैश को मारना अच्छा नहीं है। मुझे केवल कॉन्फ़िगरेशन के लिए सुंदर रीलोड की आवश्यकता है। – lisachenko

+0

मेरा मानना ​​है कि आप इसे 'ऐप/कंसोल कैश' के साथ अनुपालन कर सकते हैं: स्पष्ट ' – Ascherer

0

कैश साफ़ करें और तुरंत डेटा मेरे ठीक उपयोग करने के लिए है

sudo app/console cache:clear --env=prod --no-warmup --no-debug 

इस आदेश का उपयोग डिबग बंद हो जाती है , और डेटा फिर से पहुंचने से पहले एक गर्म समय नहीं है

+1

ध्यान रखें कि '--no-warmup' ध्वज 'कैश: स्पष्ट' पूर्ण होने के बाद उत्पन्न होने से एक नया पर्यावरण आधारित कैश रोकता है । देरी (कैश पीढ़ी) तब होती है जब एप्लिकेशन को पहली बार चलाने के लिए चलाया जाता है। – fyrye