Я сформував тонни фіктивного вмісту для тестування, а потім видалив їх усіх. Оскільки nid є автоматичним збільшенням, новостворений вузол матиме nid останнього створеного nid +1.
Як я можу змусити nid почати з 1 знову?
Я сформував тонни фіктивного вмісту для тестування, а потім видалив їх усіх. Оскільки nid є автоматичним збільшенням, новостворений вузол матиме nid останнього створеного nid +1.
Як я можу змусити nid почати з 1 знову?
Відповіді:
Plase не обрізає таблицю вузлів просто так, є деякі інші таблиці, підключені до таблиці вузлів, такі як node_reitions, послідовності, таблиці полів, таблиці таксономії та багато іншого.
Немає безпечного способу зробити це, це дійсно залежить від вашого веб-сайту, вам доведеться усікати та коригувати всі таблиці, які містять nid, включаючи таблицю послідовностей. Пам'ятайте, велика ймовірність того, що ваш сайт стане непридатним, тому не починайте спочатку без резервної копії.
ALTER TABLE `node` AUTO_INCREMENT = 1;
PS - Інші, хто відповів на це запитання: я лише зробив невелику перевірку після видалення вмісту, і пов’язаний з ним вміст справді видалено, таблиці node_reitions і field_ * порожні. node_delete говорить те саме - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7
Іноді для міграційних проектів, коли ви мігруєте з інших платформ (наприклад, ASP + MSSQL), іноді стає неминучим скинути нуд через велику кількість факторів. Я впевнений, що цього можна уникнути, але компроміс часу / коду завжди є.
Ви можете скористатися модулем Видалити все за допомогою наступних команд:
Drupal 7
Видаліть вузли всіх типів та скиньте вузол, лічильник перегляду та коментарів.
drush delete-all --reset
Друпал 8
Видаляє весь вміст усіх типів.
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;
Ви можете усікати таблицю вузлів, але, зверніть увагу, Ви повинні усікати таблицю реляційних полей, якщо Ви просто хочете почати збільшити ІД з 1, Ви можете використовувати
ALTER TABLE `node` AUTO_INCREMENT=1