সমস্ত ক্যাশে অক্ষম করার জন্য কি কোনও ড্রশ স্ক্রিপ্ট রয়েছে?


19

আমি অ্যাডমিন / সেটিংস / পারফরম্যান্সের অধীনে সমস্ত ক্যাশিং বিকল্পের অর্থ। সার্ভারের সাথে আমার বিকাশের অনুলিপিটি আপ-টু-ডেট রাখার জন্য আমি প্রায়শই ড্রশ এসকিএল-সিঙ্ক ব্যবহার করি। যাইহোক, সার্ভার অবশ্যই সমস্ত ক্যাশে চালু আছে, অবশ্যই।

তাই আমি ভাবছি: প্রতিবার আমার ডিবি আপডেট করার সাথে সাথে কি আমাকে অ্যাডমিন / সেটিংস / পারফরম্যান্স দেখতে হবে? নাকি তার জন্য কোনও ড্রশ লিপি আছে?


1
কেবলমাত্র একটি সংক্ষিপ্ত ব্যাখ্যা: chx উত্তরটি সর্বোত্তম কারণ যেটি লাগে তা হ'ল 'ড্রশ এন ক্যাশে_ডিজাইভ - আইজ'। জিপেল সত্যিই কাছাকাছি আসে, যেহেতু এটি সমস্যাটি একবার এবং সকলের জন্যই সমাধান করে, যদিও এটি নতুনদের ক্ষতি করতে পারে। ডাবলজয়েস আসলে একটি ড্রাশ স্ক্রিপ্টের প্রস্তাব দেয় এবং এটি আমার প্রশ্নের একটি দুর্দান্ত উত্তর, যদিও অন্য দু'টি আরও ভাল।
ক্যাপী ইথেরিয়েল

উত্তর:


6

ডি 7 এর জন্য https://drupal.org/node/797346 । ডি 6 এর জন্য, https://drupal.org/project/cache_disable তবে এটি ফর্মের ক্যাশেটি ভেঙে দেয়। ফর্ম ক্যাচিংয়ের জন্য এটির প্যাচ করা দরকার B এবং সম্ভবত স্থিতি ক্যাশেও আপডেট করুন।


আমি এটির চেহারা দেব এবং দেখুন আমি এটি প্যাচ করতে পারি কিনা।
টিপটির

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

আপনার সেটিংস.এফপি ফাইলটিতে শর্তযুক্ত কনফিগারেশন থাকলে এটি আরও সহজ। তারপরে আপনি ডিবি রিফ্রেশ করতে পারেন এবং পরিবর্তনগুলি আটকে থাকবে!

$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

... যদিও আপনি যদি কেবল অ্যাডমিন ইউআই এর মাধ্যমে বিভিন্ন ক্যাচিং বন্ধ করে দেন এবং একবার ক্যাশে সাফ করেন তবে আপনি বাকীটি বন্ধ না করে থিম সরিয়ে নিতে পারেন ... স্ক্রিপ্টের পরিবর্তনের সম্ভাবনা কম less


আপনার ধাক্কা কোডটি উত্পাদন থেকে আপ করার জন্য আপনার $conf = array( 'cache' => FALSE, //page cache 'block_cache' => FALSE, //block cache 'preprocess_css' => FALSE, //optimize css 'preprocess_js' => FALSE, //optimize javascript 'environment' => 'development' );
সেটিংস.এইচপিপি

আরও প্রস্তাবনা ...$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;
ডাবল জোশ

11

আপনি আপনার ডেটাবেস সেটিংস ওভাররাইড করতে স্পষ্টভাবে পরিবর্তনশীল সেট করতে আপনার সেটিংস.এফপি ফাইলটি ব্যবহার করতে পারেন । ফাইলগুলিতে সেট করা মানগুলিতে মানগুলি লক হয়ে যাবে এবং অ্যাডমিন ইন্টারফেসের মাধ্যমে পরিবর্তন করা যাবে না।
ডিফল্ট ফাইলের শেষে একটি বিভাগ যা শুরু হয়:

/**
 * 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',

তাই নিষ্ক্রিয় পাতা, জাতীয়, এবং CSS ক্যাশে, সেটে cache, preprocess_jsএবং preprocess_cssসব'0'

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

অ্যারে ঘোষণার জন্য ক্লোজিং বন্ধনী হ'ল ডিফল্ট ফাইলের শেষ লাইন, আরও কয়েকটি মন্তব্য ব্লকের পরে, তাই কোনও নতুন যুক্ত করার পরিবর্তে এটি সেখানে অসুবিধা নিশ্চিত করার বিষয়টি নিশ্চিত করুন। এছাড়াও নিশ্চিত হয়ে নিন যে আপনার আর কোনও $confঘোষণা নেই যা বিরোধ করবে will


2

আপনি সর্বদা আপনার ডেভ সার্ভারে একটি ড্রাশ অ্যালিয়াস ফাইল ব্যবহার করতে পারেন এবং যখন আপনি এসকিএল-সিঙ্কটি চালাবেন তখন ক্যাশে টেবিলগুলি এড়িয়ে যেতে সেট আপ করতে পারেন। নিম্নলিখিতটি আপনার স্থানীয় ডেভ সার্ভার এবং আপনার দূরবর্তী লাইভ সার্ভারের জন্য উপকরণ তৈরি করবে:

$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

তারপরে আপনি আপনার এসকিএল-সিঙ্ক কমান্ডটিকে এভাবে কল করতে পারেন:

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

এবং এটি ক্যাশে সারণীগুলি এড়ানো উচিত (স্পষ্টত আমি সেখানে কেবল 2 তালিকাবদ্ধ করেছি, তবে আপনি সেখানে কিছু রাখতে পারেন, এমনকি আমি নজরদারিও যোগ করতে পারি)।

এলিয়াস এবং সমস্ত বিভিন্ন বিকল্পের জন্য আরও তথ্যের জন্য আপনার ড্রাশ ইনস্টলের উদাহরণ ফাইলটি ড্রাশ / উদাহরণ / উদাহরণ.aliases.drushrc.php এ দেখুন dr

যে কেউ এসকিএল-সিঙ্কটি ব্যবহার করার চেষ্টা করে তার সর্বশেষ নোট হিসাবে, আমি যখন এটি প্রথম চালিত হয়েছিল তখন আমার কাছে প্রমাণীকরণের সমস্যা ছিল, তাই যদি কেউ এটি চেষ্টা করে এবং সরকারী / ব্যক্তিগত কী সম্পর্কে ত্রুটি পেয়ে থাকে তবে নিম্নলিখিতটি করুন:

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

Drush_extras এর পুশকি কমান্ডটি একটি ব্যক্তিগত / সর্বজনীন কী জুটি তৈরি করে এবং লাইভ সার্ভারে সর্বজনীন কীটি পুশ করে। শেষ কমান্ডটি পরীক্ষা করে দেখেছে যে এটি কাজ করে।


ধন্যবাদ, উত্তরটি দুর্দান্ত। তবে আমার সমস্যাটি হচ্ছে আমার বিকাশের পরিবেশটি ক্যাশে বন্ধ করে দেওয়া উচিত এবং প্রতিবার আপডেট হওয়ার সাথে সাথে আমি অ্যাডমিন / সেটিংস / কার্য সম্পাদন এড়াতে চাই।
কপি ইথেরিয়েল

1

আমি একটি ড্রশ কমান্ড লিখেছি যা নিম্নলিখিত সমস্ত বিকল্প সক্ষম / অক্ষম করে:

cache
cache_lifetime
page_cache_maximum_age
preprocess_css
preprocess_js

উদাহরণ এবং কোড এখানে পাওয়া যাবে: http://ourLive01.blogspot.gr/2015/05/drush-command-to-enableisable-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

এটি খুব সুন্দর, তবে ক্যাশে পুনরায় সক্ষম করার ক্ষেত্রে এটির নিজস্ব মতামত রয়েছে। ক্যাশে অক্ষম করার সময় বা কেবল সিএলআই প্রম্পটের মাধ্যমে ব্যবহারকারীকে জিজ্ঞাসা করার সময় আগের মানটি সংরক্ষণ করা ভাল।
ক্যাপি ইথেরিল

আপনি ঠিক @ বারাপাঁতো, আমি স্ক্রিপ্টটি পরিবর্তন করেছি এবং আমি সহায়তাও যুক্ত করেছি। নতুন কমান্ড হয় drush cache-enable min max। উপরের ইউআরএল পরীক্ষা করুন।
সাইবার্প

নতুন সংস্করণ এছাড়াও সক্ষম করে / অক্ষম করে block cache..
সাইবার্প

অসাধারণ. ড্রুপাল.আরজে এটি প্রকাশে আপনাকে কী বাধা দিচ্ছে?
ক্যাপী ইথেরিল

সময়! আমি কীভাবে এটি করতে জানি না :)
সাইবার্প

1

এছাড়াও আপনি নীচে লাইনে ক্যাশে অক্ষম করতে পারেন, এটি settings.phpফাইলগুলিতে রাখুন

$conf['display_cache_disable'] = TRUE;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.