Ich habe mehrere tausend Knoten eines bestimmten Inhaltstyps. Über das Webinterface (example.com/admin/content) kann ich jeweils nur ca. 50 löschen. Wie kann ich sie schnell löschen?
31
Dafür gibt es ein Modul (TM).
Siehe Massenlöschung .
Mit der Batch-API werden die Knoten gelöscht, um Zeitüberschreitungen oder Speicherprobleme beim Löschen Tausender Knoten mit einem einzigen Aufruf von node_delete_multiple () zu vermeiden.
Bulk Delete ist ein verlassenes Modul. Siehe für Alternativen:
Wenn Sie sich das Modul "Devel Generate" als Inspiration ansehen, finden Sie hier die Funktion "content kill"
devel_generate_content_kill
:Also würde ich versuchen, entweder mit Devel Generate alle Knoten zu löschen, aber keine neuen zu erstellen, oder mit example.com/devel/php
devel_generate_content_kill(array('node_types' => array('my_node_type')));
direkt aufzurufen .quelle
In Drupal 8 können Sie die entityQuery () -Methode mit der EntityStorageInterface :: delete () -Methode verwenden:
Wenn Sie andere Filter / Bedingungen anwenden müssen, können Sie die Seite QueryInterface- Schnittstelle überprüfen
BEARBEITEN ( andersrum dank @ 4k4 ):
Wenn Sie den Code testen möchten, können Sie Folgendes verwenden:
Dadurch werden alle Ihre Artikel gelöscht.
quelle
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
Sie dasaccessCheck
in der Anweisung festlegen sollten . Andernfalls wird accessCheck standardmäßig auf true gesetzt, wenn Sie es in drush ausführen, und alle Knoten, auf die uid 0 keinen Zugriff hat, werden nicht zurückgegeben.Wenn Sie dies nur über die Benutzeroberfläche tun möchten, können Sie das Modul devel_generate verwenden.
Auf diese Weise werden keine Knoten generiert und alle Knoten der ausgewählten Typen werden gelöscht.
quelle
Erstellen Sie eine Datei mit dem folgenden Code im Stammverzeichnis der Drupal-Installation und führen Sie die Datei aus.
quelle
Sie können dies in Drupal 7 mithilfe des Teils "PHP-Code ausführen" des Devel-Moduls tun, indem Sie Folgendes eingeben:
quelle
Tun Sie dies im Terminal, wenn Sie Drush verwenden und das Modul " Alle löschen" verwenden :
quelle
Ansichten Massenoperationen bieten einen BatchAPI-fähigen, konfigurierbaren Knotenadministrationsbildschirm, in dem Sie nach Typ filtern, alle Knoten auswählen können, die Ihren Suchkriterien entsprechen usw.
Das ist meine zweifelsfreie Lösung in Drupal 6 - neben dem Batch-Löschen können Sie Knoten in großen Mengen bearbeiten und eine Reihe anderer Aufgaben erledigen.
Es sieht so aus, als ob die Drupal 7-Version noch nicht fertig ist - aber ich würde mir dieses Modul für eine D7-Version ansehen.
quelle
Ein weiterer Ausschnitt ist:
Wo
TO_BE_DELETED
ist der zu löschende Inhaltstyp?quelle
db_delete('node')
Mit dem Devel-Modul mit drush:
Oder in der Benutzeroberfläche wie hier erklärt: http://befused.com/drupal/delete-nodes-devel
quelle
devel_generate
, das aktiviert werden muss. Und für mehrere Typen ist esdrush genc 0 --kill --types="article, page"
Ich benutze das Delete all Modul, es funktioniert gut mit D8 und bietet sehr nützliche drush Befehle. So löschen Sie beispielsweise den gesamten Inhalt des
article
Inhaltstyps:quelle
Sie können versuchen, das gesamte Modul zu löschen. Navigieren Sie zu "admin / content / delete_content", und Sie erhalten ein Formular zum Löschen von Inhalten, die zu bestimmten Inhaltstypen gehören.
Grüße
quelle
Wenn Sie das Migrate-Modul aktiviert haben, können Sie Folgendes verwenden:
Siehe Typische Migrationsbefehle mit Drush .
quelle
Dieses Modul wird verwendet, um alle Inhalte und / oder Benutzer von einer Site zu löschen. Dies ist hauptsächlich ein Entwicklertool, das in mehreren Fällen nützlich sein kann
https://www.drupal.org/project/delete_all
Ebenso löscht das Bulk Delete-Modul alle Knoten eines bestimmten Knotentyps mithilfe der Batch-API. Es wird empfohlen, das Modul "Views Batch Operations" (VBO) für eine kleine Anzahl von Knoten zu verwenden. Wenn Sie jedoch 10.000 Knoten löschen müssen, ist dieses Modul möglicherweise die bessere Option.
https://www.drupal.org/project/bulkdelete
quelle
Löschen Sie alle Knoten des Inhaltstyps programmgesteuert. Dies ist eine Hilfsfunktion:
quelle
Am Ende habe ich db_delete verwendet , es sind keine Module erforderlich:
Bearbeiten / Warnung: Siehe Berdir's Kommentar unten. Diese Methode bereinigt nicht alle Daten, die sich auf die Knoten beziehen.
quelle
Wenn Sie nicht codieren möchten, können Sie dieses Modul unter https://drupal.org/project/total_control testen
Gehen Sie einfach zu Dashboard -> Inhalt, wählen Sie den gesamten Inhalt aus (Sie können nach Inhaltstyp filtern) und wählen Sie dann "Element löschen".
quelle