Setzen Sie die Post-IDs auf weniger als 64-Bit-Ganzzahlen zurück

8

Ich betreibe Wordpress seit vielen Jahren und habe ungefähr 26000 Beiträge.

Irgendwann haben meine Post-IDs eine 32-Bit-Ganzzahl überschritten, und ich bin jetzt daran gebunden, Wordpress auf einem 64-Bit-System zu verwenden.

Ich sehe Beiträge mit IDs wie 4863166253.

Ich möchte mein Hosting auf einen Server mit geringem Stromverbrauch wie einen Himbeer-Pi mit 32 Bit umstellen.

Gibt es eine Möglichkeit, die Post-IDs so zurückzusetzen, dass sie alle unter 2 Milliarden liegen?

Sie können meinen Wordpress-Fehlerbericht hier lesen

Vielen Dank.

Mark Waters
quelle
Dies ist eines Ihrer Plugins, das Sie dorthin treibt. Ich würde post_2_post schätzen, aber das ist nur eine Vermutung. Sie müssen tatsächlich verstehen, warum Sie eine so hohe Anzahl haben (keine echte Anzahl von Revisionen bringt Sie dorthin, es sei denn, es handelt sich erneut um ein Plugin, das sie erstellt), und erst dann können Sie planen, wie Sie das Problem beheben können.
Mark Kaplun

Antworten:

5

Diese Antwort ist der Weg, den ich gehen würde, um das Problem zu lösen, wenn ich mich dem stellen müsste. Es bedeutet, dass es nicht die Antwort ist, sondern eine der Möglichkeiten.

Alle von mir vorgeschlagenen Vorgänge sollten auf einem Entwicklungs- / lokalen Server in einer Datenbanksicherung ausgeführt werden und nicht in der Produktion oder in der Originaldatenbank.

Wenn Sie 26.000 Beiträge haben, aber eine Beitrags-ID wie 4.863.166.253, gibt es zig Millionen von IDs, die nicht verwendet werden.

Um dieses Problem zu lösen, müssen Sie:

Schritt 1

  • Entfernen Sie nicht verwendete Post-IDs. (verworfene Beiträge, Überarbeitungen)
  • entfernt Waisen hinterlassen Meta Einträge
  • Entfernen Sie die Einträge für die Taxonomiebeziehung von Waisen

Es gibt Plugins für den Bereich, die jedoch mithilfe einfacher SQL-Rohabfragen ausgeführt werden können.

Schritt 2

Setzen Sie die Post-IDs zurück, indem Sie sie so ändern, dass sie wieder bei 1 beginnen. Dies kann mit einer Kombination aus PHP + MySQL erfolgen: Wenn Sie die Post-ID-Spalte als Array abrufen (z. B. über $wpdb->get_col()), sind Array-Schlüssel (um 1 erhöht) neue Post-IDs für Beiträge, deren aktuelle ID in Array-Werten angegeben ist.

Beachten Sie, dass die IDs der Beiträge geändert werden müssen in:

  • Posttisch
  • Taxonomie-Beziehungstabelle
  • Post-Meta-Tabelle

Ich schlage vor, dass Sie eine solche Routine für Teilmengen von Posts mit paginierten Ergebnissen und nicht für Tausende von Zeilen insgesamt ausführen.

Schritt 3

Setzen Sie den AUTO_INCREMENTIndex für die Post-Tabelle auf Post Count + 1.

Erledigt

Am Ende dieses Vorgangs sollte Ihre höhere Post-ID leicht innerhalb der 32-Bit-Ganzzahlgrenze liegen.

Post-Limit verhindern wird wieder erreicht

  • Deaktivieren Sie Post-Revisionen oder beschränken Sie die Anzahl (siehe Codex ).

  • Verschieben Sie ältere Beiträge (2 Jahre alt? 5?) In ein separates Blog in einer Umgebung mit mehreren Standorten, z . B. site1-archive.example.comfür Beiträge in site1.example.com.

    Dies kann mit dem WordPress-Exporter mit Datumsbereichsoption erfolgen.

    Wenn Sie dies vorhaben, ist dies viel besser, wenn Sie dies vor dem Zurücksetzen der Post-IDs tun (Schritt 2 oben). Auf diese Weise können beide 2 Blogs eine niedrigere Post-ID haben.

    Danach sollten Sie natürlich auch eine Möglichkeit einrichten, archivierte Post-URLs auf neue URLs umzuleiten.

gmazzap
quelle