আমি কীভাবে এসকিউএল কোয়েরি ব্যবহার করে ক্যাশে সাফ করব?


21

মডিউল আপডেটের পরে, আমার সাইটটি ব্যবহারের অযোগ্য হয়ে উঠেছে এবং কেবল একটি পিএইচপি ত্রুটি বার্তা দেখায়। আমি সমস্যাটি সমাধান করার চেষ্টা করেছি drush cc, তবে তাতে কোন লাভ হয়নি।

একটি কাস্টম পিএইচপি স্ক্রিপ্ট দিয়ে চেষ্টাও করেছেন তবে এতে আমার সন্ধান করার সমস্যা রয়েছে DRUPAL_ROOT

আমি কেবল ড্রুপাল 7 থেকে সরাসরি মাইএসকিএল সার্ভারে ক্যাশে টেবিলগুলি সাফ করতে চাই, তবে আমি নিশ্চিত নই যে কোন টেবিলগুলি তার জন্য সাফ করা উচিত এবং বিশেষত কোনটি আমার পরিষ্কার করা উচিত নয়।

আমার কি কেবল সমস্ত [SITE-PREFIX_]cache*টেবিল সাফ করা দরকার ?


আপনি দয়া করে আপনার ব্যবহৃত ক্যোয়ারী যুক্ত করতে পারেন?
ipwa

প্রকৃতপক্ষে আমি এই জাতীয় কিছু ব্যবহারের জন্য একটি অনুসন্ধানের সন্ধান করছিলাম: `এখানে খালি টেবিলের নামটি 'উপসর্গ_চেছা%' পছন্দ করুন তবে শেষ পর্যন্ত আমি কেবল টেবিলগুলি ফেলে দেওয়ার জন্য phpmyadmin ব্যবহার করেছি কারণ আমি এরকম কোনও অনুসন্ধান পাই না couldn't
ফ্লাই করুন

ঠিক যেমন একটি নোট, নিশ্চিত হয়ে নিন যে আপনি drush updbঅ্যাডমিন ইন্টারফেসের মাধ্যমে বা থেকে ডেটাবেস আপডেটগুলি চালিত করেছেন , বা কেবল /update.phpকোনও মডিউল / কোর আপডেটের পরে গিয়েছেন।
মৌমাছি

উত্তর:


6

যে কোনও লিখিত মডিউল রয়েছে যার ক্যাশে রয়েছে, তার এটি ক্যাশে উপসর্গ করা উচিত, অর্থাত আপনার প্রশ্নের উত্তর "হ্যাঁ"।

এই মজার মডিউলটি অন্য কোথাও ডেটা ক্যাশে করে এমন অজানা ইভেন্টে, আপনি হুক_ফ্লাশ_ক্যাচগুলি বাস্তবায়নের জন্য আপনার মডিউলগুলি পরীক্ষা করতে পারেন এবং তারা কী সরিয়ে ফেলবে তা দেখতে পারেন।


29

হ্যাঁ, আপনি সহজভাবে ( TRUNCATE) সমস্ত cache*টেবিল সাফ করতে পারেন ।

এটি আমার পক্ষে ভাল কাজ করেছে:

TRUNCATE TABLE cache;
TRUNCATE TABLE cache_block;
TRUNCATE TABLE cache_bootstrap;
TRUNCATE TABLE cache_field;
TRUNCATE TABLE cache_filter;
TRUNCATE TABLE cache_form;
TRUNCATE TABLE cache_image;
TRUNCATE TABLE cache_menu;
TRUNCATE TABLE cache_page;
TRUNCATE TABLE cache_path;
TRUNCATE TABLE cache_token;
TRUNCATE TABLE cache_update;

আপনি যদি ড্রাশ ব্যবহার করেন তবে উপরেরটি drush sql-cliসেখানে চালান এবং পেস্ট করুন।

এই আদেশগুলি আপনার নির্দিষ্ট সাইটের সমস্ত ক্যাশে টেবিলগুলি মুছে ফেলতে পারে না তবে এটি কিছু ত্রুটি সমাধান করতে সহায়তা করতে পারে। পরে আপনি বাকীটি drush cc allসাফ করার চেষ্টা করতে পারেন ।


1
আপনার সাইটে উপস্থিত থাকতে পারে এমন অতিরিক্ত অতিরিক্ত ক্যাশে_ টেবিলগুলির জন্য অতিরিক্ত ট্রুনকেট ক্যোয়ারী যুক্ত করাও সহজ।
মিলিয়নেলিভ

11

সমস্ত ক্যাশে সারণী সাফ করার জন্য আপনার সার্ভার টার্মিনালে এই কমান্ডটি চালান।

# Truncate cache tables in MySQL regardless of the active cache backend
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "TRUNCATE TABLE %;" | $(drush sql-connect) -v

এটি সমস্ত ক্যাশে টেবিলের মধ্য দিয়ে লুপ করবে এবং সেগুলিকে একটি কমান্ডে ছিন্ন করবে।


1
এটি কাজ করে, এটি পরীক্ষা করে এবং সব শূন্য।
মার্কো ব্লেজকোভিচ

1
এটি অস্পষ্ট "ক্লাসটি পাওয়া যায় নি" ত্রুটি থাকা অবস্থায় আমাকে আবার কোনও সাইট চালিয়ে যেতে সহায়তা করেছিল।
ব্যবহারকারী18099

1
ধন্যবাদ মোহাম্মদ, আমি আপনার ওয়ান-লাইনারের সমাধানটি গ্রহণযোগ্য উত্তরের চেয়ে ভাল পছন্দ করি কারণ এটি আরও নমনীয়: প্যাটার্নটি কাস্টম / অবদানের ক্যাশে টেবিলগুলিও ধরেছে, কেবল হার্ড-কোডেড তালিকাগুলি নয়।
বালু এর্টল

3

আপনি প্রতিটি টেবিলে আলাদাভাবে ট্রানসেট / ডিলিট করতে পারবেন যা শুরু থেকে cache_:

DELETE FROM cache;
DELETE FROM cache_block;

এবং এইভাবে (চেক মাধ্যমে drush sqlq "SHOW TABLES LIKE 'cache_%'")।

অথবা টেবিলের তালিকাসমূহের সাথে ক্যোয়ারী উত্পন্ন করুন এবং তাদের কেটে ফেলতে ড্রশকে দিন, যেমন:

echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v

বা:

echo "SELECT CONCAT('DELETE FROM ', GROUP_CONCAT(TABLE_NAME SEPARATOR ';DELETE FROM ') , ' cache;' ) AS statement FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'cache_%'" | drush sqlc --extra=--skip-column-names | drush sqlc

মেমক্যাশে

আপনি যদি মেমক্যাচ ব্যবহার করে থাকেন তবে আপনাকে সেখানে ক্যাশেগুলিও ফ্লাশ করতে হবে, যেমন (বাশ সিনট্যাক্স):

echo flush_all > /dev/tcp/127.0.0.1/11211

0

অথবা, আপনি ইতিমধ্যে কাটা cache*টেবিলের সাথে মাইএসকিএল ডাম্প আমদানি করতে পারেন :

gunzip -c ~/database.sql.gz | grep -v 'INSERT INTO `cache'| mysql --user=root drupal

0

drush crএবং / অথবা drush cc allসমস্ত ক্যাশে সাফ করার কথা, তবে প্রকৃতপক্ষে কিছু ক্যাশে সারণী সাফ হয়ে যায় না। নিম্নলিখিত (সরলীকৃত) আদেশটি সমস্ত ক্যাশে ছাঁটাই করে:

drush sql-query "SHOW TABLES LIKE 'cache%'" | while read table; do drush sql-query "TRUNCATE $table"; done;

0

এই নিবন্ধে জেএফআর অন্য একটি নমনীয় প্যাটার্ন-ভিত্তিক সমাধানটি কাঁচা এসকিউএল-ক্যোয়ারির আকারে দেওয়া হয়েছে, তবে মোহাম্মদ এর মতো আমার পক্ষে কাজ করছে না: https://thebarton.org/clear-drupal-cache-sql-query /

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