সমস্ত নোড মোছার পরে, আমি আবার 1 থেকে নোড আইডি পুনরায় সেট করব কীভাবে?


17

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

আমি কীভাবে আবার 1 থেকে নিড শুরু করতে পারি?


6
প্রশ্ন হল কেন এটি করতে চাইবে। এনআইডিটি কী ব্যবহৃত হয় তা সত্যই আসে না এবং এটি কোনওভাবেই কঠোরভাবে ক্রমযুক্ত হওয়ার কোনও গ্যারান্টি নেই।
বারদির

3
আমি বার্দিরের সাথে একমত; কোনও মডিউলের উপর নির্ভর করা উচিত নয় যে প্রথম নোডের সমান আইডি রয়েছে 1 এটি ব্যবহারকারীর ব্যবহারকারী আইডির অনুরূপ: আপনি 0 এবং 1 এর সমান আইডি সহ ব্যবহারকারীর উপস্থিতির উপর নির্ভর করতে পারেন, যা সর্বদা দ্রুপাল থেকে তৈরি করা হয় ইনস্টলেশন চলাকালীন, তবে আপনার আইডি সমান 3 এর সাথে কোনও ব্যবহারকারীর অ্যাকাউন্টের উপস্থিতির উপর নির্ভর করা উচিত নয় Other অন্যান্য মডিউলগুলি বেনামে ব্যবহারকারীর বা সুপার-ব্যবহারকারীর অ্যাকাউন্ট মুছে ফেলতে পারে তবে এটিকে মডিউলগুলির একটি বাগ হিসাবে বিবেচনা করা উচিত।
কিমলালুনো

উত্তর:


13

প্লেস নোড টেবিলটি ঠিক তেমনভাবে কাটাবেন না, নোড টেবিলের সাথে আরও কিছু টেবিল সংযুক্ত রয়েছে, যেমন নোড_রিভিশনস, সিকোয়েন্সস, ফিল্ডস টেবিল, ট্যাক্সোনমি টেবিল এবং আরও অনেক কিছু।

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


1
আমি প্রত্যাশা করব যে নোডগুলির উল্লেখ রয়েছে এমন অন্যান্য সারণীগুলিও খালি থাকা উচিত, যখন সমস্ত নোড মুছে ফেলা হয়। বলেছিলেন যে, কোনও মডিউলের উপর নির্ভর করা উচিত নয় যে প্রথম নোডের 1 সমান আইডি রয়েছে
কিমলালুনো

16
ALTER TABLE `node` AUTO_INCREMENT = 1;

পিএস - অন্যরা যারা এই প্রশ্নের জবাব দিয়েছেন: আমি কন্টেন্ট মুছে ফেলার পরে কেবল একটি ছোট চেক করেছি এবং সম্পর্কিত সামগ্রীটি সত্যই মুছে ফেলা হয়েছে, নোড_ রিভিশন এবং ফিল্ড_ * সারণী খালি রয়েছে। নোড_ডিলেট একই কথা বলেছে - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_mpleple/7

কখনও কখনও মাইগ্রেশন প্রকল্পগুলিতে যখন আপনি অন্য প্ল্যাটফর্মগুলি (যেমন। এএসপি + এমএসএসকিউএল) থেকে স্থানান্তরিত হন, কখনও কখনও এটি অনেক কারণের কারণে এনআইডিটিকে পুনরায় সেট করতে অনিবার্য হয়ে ওঠে। আমি নিশ্চিত যে এড়ানো যায় তবে সময় / কোড ট্রেড অফ সর্বদা থাকে।


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

2

এসকিউএল ক্যোয়ারী: ALTER TABLE 'node' AUTO_INCREMENT=1;

এটি করার আগে আপনি সমস্ত নোড মুছে ফেলেছেন তা নিশ্চিত করুন।


2

আপনি মডিউলটি নিম্নলিখিত ড্রাশ কমান্ডের সাহায্যে মুছুন :

দ্রুপাল 7

সমস্ত ধরণের নোড মুছুন এবং নোড, রিভিশন এবং মন্তব্য কাউন্টার পুনরায় সেট করুন।

drush delete-all --reset

দ্রুপাল ৮

এখানে দেখো

সমস্ত ধরণের সমস্ত সামগ্রী মুছে ফেলে।

drush delete-all-delete-content

এবং তারপর:

ALTER TABLE `node` AUTO_INCREMENT=1;
ALTER TABLE `node_revision` AUTO_INCREMENT=1;
ALTER TABLE `node_field_data` AUTO_INCREMENT=1;
ALTER TABLE `node_field_revision` AUTO_INCREMENT=1;

0

আপনি নোড টেবিলটি কেটে ফেলতে পারেন তবে মনোযোগ দিন আপনার অবশ্যই সম্পর্কযুক্ত ক্ষেত্রের টেবিলটি কেটে ফেলতে হবে, যদি আপনি কেবল 1 থেকে বর্ধিত আইডি শুরু করতে চান তবে আপনি ব্যবহার করতে পারেন

ALTER TABLE  `node` AUTO_INCREMENT=1

নোড টেবিল কেটে দেওয়া সমস্ত হুকগুলিকে অগ্রাহ্য করবে যা নোড মুছে ফেলা উচিত, সুতরাং এটি কোনও বুদ্ধিমান ধারণা নয়। উদাহরণস্বরূপ, এটি পুনর্বিবেচনার টেবিলের মধ্যে ডেটা ছেড়ে যাবে, এবং দ্রুপাল ক্র্যাশ হয়ে যাবে যখন এটি পুনর্বিবেচনা তৈরির চেষ্টা করে ইতিমধ্যে ব্যবহৃত নিডকে আঘাত করবে।
Mołot

@ মূট আপনি যদি নোড এবং রিভিশন নোড টেবিল কেটে ফেলেন তবে আপনার কোনও সমস্যা নেই। আমি এটি পরীক্ষা করি এবং সমস্যা নেই
শাহাব

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