क्या सभी कैश को अक्षम करने के लिए ड्रश स्क्रिप्ट है?


19

मेरा मतलब है कि व्यवस्थापक / सेटिंग्स / प्रदर्शन के तहत सभी कैशिंग विकल्प। मैं अक्सर सर्वर के साथ अपने विकास की प्रतिलिपि बनाए रखने के लिए ड्रश एसक्यूएल-सिंक का उपयोग करता हूं। हालाँकि, सर्वर को चालू सभी कैश होना चाहिए, जाहिर है।

तो मुझे आश्चर्य होता है: क्या मुझे अपने db को अपडेट करने के लिए हर बार व्यवस्थापक / सेटिंग्स / प्रदर्शन पर जाना चाहिए? या उसके लिए एक ड्रश स्क्रिप्ट है?


1
बस एक संक्षिप्त विवरण: chx उत्तर सबसे अच्छा है क्योंकि यह सब 'drush en cache_disable --yes' है। GApple वास्तव में करीब आता है, क्योंकि यह समस्या को एक बार और सभी के लिए हल करता है, हालांकि यह newbies को चोट पहुंचा सकता है। doublejoice वास्तव में एक शराबी स्क्रिप्ट का प्रस्ताव है, और मेरे सवाल का एक अद्भुत जवाब है, हालांकि अन्य दो भी बेहतर हैं।
कैपी एथरियल

जवाबों:


6

D7 के लिए https://drupal.org/node/797346 D6 के लिए, https://drupal.org/project/cache_disable लेकिन यह फ़ॉर्म कैश को तोड़ देता है। फॉर्म कैशिंग के लिए डीबी कैश तक गिरने के लिए इसे पैच करने की आवश्यकता है। और शायद स्टेटस कैश को भी अपडेट करें।


मैं इसे एक रूप दूंगा और देखूंगा कि क्या मैं इसे पैच कर सकता हूं। टिप के लिए बहुत धन्यवाद :)
Capi Etheriel

17

आपको अपने देव स्थल पर कैशिंग बंद करने के लिए कई चर सेट करने की आवश्यकता है ...

 drush vset cache 0
 drush vset preprocess_css 0
 drush vset preprocess_js 0
 drush vset page_cache_maximum_age 0
 drush vset views_skip_cache TRUE

यदि आप अपनी सेटिंग में सशर्त कॉन्फ़िगर करते हैं तो यह और भी आसान है। फिर आप DB को रीफ्रेश कर सकते हैं और बदलाव चिपक जाएंगे!

$conf['cache'] = 0; // Page cache $conf['page_cache_maximum_age'] = 0; // External cache TTL $conf['preprocess_css'] = FALSE; // Optimize css $conf['preprocess_js'] = FALSE; // Optimize javascript $conf['views_skip_cache'] = TRUE; // Views caching

... हालाँकि अगर आप एक बार एडमिन UI और क्लियर कैश के माध्यम से विभिन्न कैशिंग को बंद कर देते हैं, तो आप बाकी को बंद किए बिना थीम को दूर कर सकते हैं ... क्योंकि स्क्रिप्ट के बदलने की संभावना कम है।


आप अपनी सेटिंग को हटा भी सकते हैं। रिपॉजिटरी से अपने फ़ाइल को अपने पुश कोड को प्रोडक्शन में शामिल कर सकते हैं और इन सेटिंग्स को जोड़ सकते हैं ...$conf = array( 'cache' => FALSE, //page cache 'block_cache' => FALSE, //block cache 'preprocess_css' => FALSE, //optimize css 'preprocess_js' => FALSE, //optimize javascript 'environment' => 'development' );
doublejosh 18

अधिक सिफारिशें ...$conf['cache'] = 0; $conf['page_cache_maximum_age'] = 0; $conf['block_cache'] = FALSE; $conf['preprocess_css'] = FALSE; $conf['preprocess_js'] = FALSE; $conf['views_skip_cache'] = TRUE;
0

11

अपनी डेटाबेस सेटिंग्स को ओवरराइड करने के लिए स्पष्ट रूप से चर सेट करने के लिए आप अपनी सेटिंग्स.php फ़ाइल का उपयोग कर सकते हैं । मान को फ़ाइल में जो कुछ भी सेट किया गया है, उसे लॉक किया जाएगा, और व्यवस्थापक इंटरफ़ेस के माध्यम से नहीं बदला जा सकता है।
डिफ़ॉल्ट फ़ाइल के अंत में एक खंड है जो शुरू होता है:

/**
 * Variable overrides:
 *
 * To override specific entries in the 'variable' table for this site,
 * set them here. You usually don't need to use this feature. This is
 * useful in a configuration file for a vhost or directory, rather than
 * the default settings.php. Any configuration setting from the 'variable'
 * table can be given a new value. Note that any values you provide in
 * these variable overrides will not be modifiable from the Drupal
 * administration interface.
 *
 * Remove the leading hash signs to enable.
 */
# $conf = array(
#   'site_name' => 'My Drupal site',
#   'theme_default' => 'minnelli',
#   'anonymous' => 'Visitor',

तो अक्षम पेज, जे एस, और सीएसएस कैशिंग, सेट करने के लिए cache, preprocess_jsऔर preprocess_cssकरने के लिए सभी'0'

$conf = array(
  'cache' => '0',
  'preprocess_css' => '0',
  'preprocess_js' => '0',
);

सरणी घोषणा के लिए समापन कोष्ठक डिफ़ॉल्ट फ़ाइल की अंतिम पंक्ति है, कुछ और टिप्पणी खंडों के बाद, इसलिए एक नया जोड़ने के बजाय इसे वहां अनसुना करना सुनिश्चित करें। यह भी सुनिश्चित करें कि आपके पास एक और $confघोषणा नहीं है जो संघर्ष करेगी।


2

जब आप sql-सिंक चलाते हैं, तो आप हमेशा अपने dev सर्वर पर एक drush aliases फ़ाइल का उपयोग कर सकते हैं और इसे कैश टेबल को छोड़ सकते हैं। निम्नलिखित आपके स्थानीय देव सर्वर और आपके दूरस्थ लाइव सर्वर के लिए उपनाम बनाएगा:

$aliases['dev'] = array(
    'root' => '/var/www/devroot',
);

$aliases['live'] = array(
    'root' => '/var/www/liveroot',
    'remote-host' => 'www.mysite.com',
    'remote-user' => 'exampleuser',
    'command-specific' => array (
       'sql-sync' => array (
         'skip-tables-list' => 'cache,cache_menu',
       ),
    ),
);

यदि आपने उसे अपने घर निर्देशिका के अंतर्गत सहेजा है:

~/.drush/mysite.aliases.drushrc.php

तब आप अपनी sql-सिंक कमांड को इस तरह से कॉल कर सकते हैं:

drush sql-sync @mysite.live @mysite.dev

और इसे कैश टेबल को छोड़ देना चाहिए (जाहिर है कि मैंने केवल 2 को वहां सूचीबद्ध किया था, लेकिन आप वहां कुछ भी डाल सकते हैं, मैं यहां तक ​​कि वॉचडॉग भी जोड़ सकता हूं)।

उपनाम और सभी विभिन्न विकल्पों के बारे में अधिक जानकारी के लिए, drush / example / example.aliases.drushrc.php पर अपने ड्रश इंस्टॉल में उदाहरण फ़ाइल देखें।

किसी के लिए अंतिम नोट के रूप में, जो sql-सिंक का उपयोग करने की कोशिश करता है, मेरे पास पहली बार चलने पर प्रमाणीकरण समस्याएँ थीं, इसलिए यदि कोई व्यक्ति यह प्रयास करता है और सार्वजनिक / निजी कुंजी के बारे में त्रुटियां प्राप्त करता है, तो निम्न कार्य करें:

drush dl drush_extras
drush pushkey @mysite.live
drush @mysite.live status

Drush_extras से pushkey कमांड एक निजी / सार्वजनिक कुंजी युग्म बनाता है और सार्वजनिक कुंजी को लाइव सर्वर पर धकेलता है। अंतिम कमांड यह जांचने के लिए है कि यह काम किया है।


धन्यवाद, जवाब अद्भुत है। लेकिन मेरा मुद्दा यह है कि मेरे विकास के माहौल को बंद कर देना चाहिए और मैं हर बार अपडेट होने पर व्यवस्थापक / सेटिंग्स / प्रदर्शन पर जाने से बचना चाहता हूं।
Capi Etheriel

1

मैंने एक ड्रश कमांड लिखा है जो निम्नलिखित सभी विकल्पों को सक्षम / निष्क्रिय करता है:

cache
cache_lifetime
page_cache_maximum_age
preprocess_css
preprocess_js

उदाहरण और कोड यहां देखे जा सकते हैं: http://ourlife01.blogspot.gr/2015/05/drush-command-to-enabledisable-cache.html

तो उपरोक्त सभी विकल्पों को निष्क्रिय करने के लिए, आपको बस चलना होगा:

drush cache-disable

आदेश:

drush cache-enable

मानों के लिए चर सेट करने के समान है:

cache: TRUE
cache_lifetime: 1 minute
page_cache_maximum_age: 1 hour
preprocess_css: TRUE
preprocess_js: TRUE

यह बहुत अच्छा है, लेकिन कैश को फिर से सक्षम करने के लिए इसकी अपनी राय है। शायद कैश को अक्षम करने या सीएलआई प्रॉम्प्ट के माध्यम से उपयोगकर्ता से पूछने पर पिछले मूल्य को बचाने के लिए बेहतर होगा।
कैपी एथरिएल

आप सही हैं @barrapanto, मैंने स्क्रिप्ट को संशोधित किया और मैंने मदद भी जोड़ी। नए आदेश है drush cache-enable min max। उपरोक्त URL की जाँच करें।
साइबरब

नया संस्करण सक्षम बनाता है / block cacheसाथ ही निष्क्रिय करता है ..
साइबरप

बहुत बढ़िया। क्या आप इसे drupal.org में प्रकाशित करने से रोक रहे हैं?
कैपी एथरिएल

समय! मुझे नहीं पता कि यह कैसे करना है :)
साइबर

1

इसके अलावा, आप कैश को नीचे पंक्ति द्वारा अक्षम कर सकते हैं, इसे settings.phpफ़ाइलों में डाल सकते हैं

$conf['display_cache_disable'] = TRUE;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.