আমি কীভাবে সমস্ত নোড / ক্ষেত্রের পুনর্বিবেচনাগুলি মুছতে পারি?


17

আমার একটি ড্রুপাল sites টি সাইট রয়েছে যেখানে এটি নোড এবং ফিল্ড রিভিশন রাখে। আমি সেই মামলার সংশোধন রাখি যেখানে ভুল করে একটি নতুন ত্রুটিযুক্ত সংস্করণ সংরক্ষণ করা হয় এবং আমি ফিরে যেতে চাই।

তবে, এখন আমি হার্ডডিস্কে কম স্থান নিতে ডাটাবেস পরিষ্কার এবং অনুকূল করতে চাই।

সাইটের সমস্ত নোড / ক্ষেত্রের জন্য বর্তমান একটি ব্যতীত সমস্ত সংশোধনী মুছানোর কয়েকটি পদ্ধতি কী?

উত্তর:


13

আপনার রিভিশনগুলি মুছতে এবং পরিচালনা করতে নোড রিভিশন মুছুন মডিউলটি ব্যবহার করুন । (আমি মডিউলটির রক্ষণাবেক্ষণকারী)

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


আপনি নোড রিভিশন মোছার সাথে ফিল্ড রিভিশনগুলি মুছতে পারেন? আমি এই মডিউলটির সাথে এটি করার জন্য কোনও বিকল্প দেখছি না
ব্লোনডসওয়ান

15

রিভিশন মোছার জন্য এখনও একটি স্থিতিশীল প্রকাশ হয়নি তবে একটি ডি 7 পোর্ট চলছে (নিশ্চিত নয় এটির কার্যকরী কিনা)।

এই থ্রেডে কেউ পুনর্বিবেচনাগুলি বিচ্ছিন্ন করতে এবং সেগুলি মুছতে ভিবিও ব্যবহার করার পরামর্শ দিয়েছেন ।

আপনি যদি API এর সাথে স্বাচ্ছন্দ্য বোধ করেন তবে আপনার সমস্ত নোডের মাধ্যমে একটি লুপ তৈরি করুন, ব্যবহার করে সংশোধনগুলি পুনরুদ্ধার করুন node_revision_list()এবং সেগুলি ব্যবহার করে মুছুন node_revision_delete()

শেষ অবলম্বন হিসাবে এবং আপনি যদি ডিবি ( যেমন আমি করি ) এর সাথে জগাখিচুড়ি করতে চান তবে আপনি সংশোধনগুলির সারিগুলি field_revision_*এবং node_revisionসারণীগুলি মুছতে পারেন । এটা চেষ্টা কর:

সতর্কতা: মোটেই পরীক্ষিত নয়!

DELETE FROM field_revision_body
WHERE NOT EXISTS (
  SELECT NULL
  FROM node
  WHERE vid = revision_id
);

DELETE FROM node_revision
WHERE NOT EXISTS (
  SELECT NULL
  FROM node
  WHERE node.vid = node_revision.vid
);

আপনি information_schemaডাটাবেসে আপনার সংশোধনীগুলির সারণীর সম্পূর্ণ তালিকাটি পেতে পারেন :

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE 'field_revision%'
AND TABLE_SCHEMA = 'your_database';

3
নোড রিভিশন মোছার মডিউলটির এখন একটি স্থিতিশীল প্রকাশ রয়েছে।
ফ্রি র‌্যাডিকাল

এটি পরীক্ষা করে, আমি নোড_ রিভিশন কোয়েরিতে শর্ত থাকা উচিত বলে বিশ্বাস করি WHERE node.vid = node_revision.vid। যেমন ত্রুটি। ফিল্ড_রিভিশন_বডি ক্যোয়ারিতে সম্ভবত সারণিগুলিও নির্দিষ্ট করুন?
ডিজিটগোফার

এই উত্তরে উল্লিখিত রিভিশন ডিলেশন মডিউলটি পরিবর্তে নোড রিভিশন মুছা ব্যবহার করার পরামর্শ দেয়, কারণ আমাদের একই কাজটি করার জন্য 5 টি মডিউল প্রয়োজন হয় না। গৃহীত উত্তর দেখুন।
mbomb007

2

একই পরিস্থিতিতে আমি নীচে কোড ব্যবহার করেছি:

foreach (node_load_multiple($nids) as $node) {
  // Delete sub revisions.
  foreach (node_revision_list($node) as $vid => $revision) {
    node_revision_delete($vid);
  }
  // Delete archived revisions.
  revisioning_delete_archived_revisions($node);
}

1

আমি এটি ভিবিও লোকদের জন্য তৈরি করেছি (নির্বিচার পিএইচপি এক্সিকিউট করুন), এটি সমস্ত সংশোধনী মুছে ফেলবে (বর্তমান ব্যতীত)। এটি অন্তর্নির্মিত বাছাই করা অর্ডারের উপর নির্ভর করে node_revision_list(), তাই লাইভ ডেটা ব্যবহারের আগে কাঙ্ক্ষিত ফলাফলের জন্য আপনার ডিবি এবং পরীক্ষার ব্যাক আপ দিন

  krumo($entity);

  $revision_array = node_revision_list($entity);  
  $revision_array_ASC = array_reverse($revision_array, TRUE);
  krumo($revision_array_ASC);
  krumo(count($revision_array_ASC));

  foreach ($revision_array_ASC as $vid => $node) {
    $count = count($revision_array_ASC);
    if ($count > 1) {
          node_revision_delete($vid);
    }
  }

  $revision_array = node_revision_list($entity);  
  krumo($revision_array);

দেখে মনে হচ্ছে আপনার বর্তমান সংশোধন (বাছাই, গণনা) মুছে ফেলা এড়াতে একটি বড় সমস্যা হচ্ছে। তবে নোড_রিভিশন_ডিলিট ইতিমধ্যে বর্তমান রিভিশনটি মোছা প্রতিরোধ করে।
dxvargas

0

নোড রিভিশন মুছুন মডিউল এখন একটি স্থিতিশীল প্রকাশ আছে।

নোড রিভিশন মোছা মডিউল আপনাকে সামগ্রীর ধরণের পুরানো সংশোধনগুলি ট্র্যাক এবং ছাঁটাই করতে দেয়। বৈশিষ্ট্য:

  • সামগ্রীর প্রকারের জন্য প্রতি সর্বোচ্চ সংখ্যক সংশোধনী নির্ধারণ করুন।
  • ড্রাশ, ক্রোন রান বা একটি আলাদা সময়কালে (দৈনিক, সাপ্তাহিক ইত্যাদি) চালান।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.