web-dev-qa-db-fra.com

Après avoir supprimé tous les nœuds, comment réinitialiser l'ID de nœud pour recommencer à partir de 1?

J'ai généré des tonnes de contenu factice pour les tests, puis les ai tous supprimés. Comme nid est auto-incrémenté, le nœud nouvellement créé aura un nid du dernier nid +1 créé.

Comment refaire nid à partir de 1?

16
gilzero

Plase ne tronque pas la table de nœuds comme ça, il y a d'autres tables connectées à la table de nœuds, comme node_revisions, séquences, tables de champs, tables de taxonomie, et bien d'autres.

Il n'y a aucun moyen sûr de le faire, cela dépend vraiment de votre site, vous devrez tronquer et ajuster toutes les tables qui ont un nid, y compris la table des séquences. N'oubliez pas, il est très probable que votre site devienne inutilisable, alors ne commencez pas sans une sauvegarde en premier.

12
Luis
ALTER TABLE `node` AUTO_INCREMENT = 1;

P.S - D'autres qui ont répondu à cette question: je viens de faire une petite vérification après avoir supprimé le contenu et le contenu associé est en effet supprimé, les tables node_revisions et field_ * sont vides. node_delete dit la même chose - http://api.drupal.org/api/drupal/modules--node--node.module/function/node_delete_multiple/7

Parfois, sur les projets de migration lorsque vous migrez à partir d'autres plates-formes (ex. ASP + MSSQL), parfois il devient inévitable de réinitialiser le nid en raison de nombreux facteurs. Je suis sûr que cela pourrait être évité mais le temps Le compromis/code est toujours là.

16
Dipen

Requête SQL: ALTER TABLE 'node' AUTO_INCREMENT=1;

Assurez-vous d'avoir supprimé tous les nœuds avant de procéder.

2
beeleg

Vous pouvez utiliser le module Supprimer tout avec les commandes drush suivantes:

Drupal 7

Supprimez les nœuds de tous types et réinitialisez les compteurs de nœuds, de révision et de commentaires.

drush delete-all --reset

Drupal 8

voir ici

Supprime tout le contenu de tous les types.

drush delete-all-delete-content

Et alors:

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;
2
schneidolf

vous pouvez tronquer la table des nœuds mais, faites attention, vous devez tronquer la table des champs relationnels, si vous voulez simplement démarrer l'incrémentation de l'identifiant à partir de 1, vous pouvez utiliser

ALTER TABLE  `node` AUTO_INCREMENT=1
0
shahab