Relaunch 4.2 utf8mb4 database Upgrade

Ich habe WP auf 4.2 aktualisiert, während es auf einem alten Server war, der nicht mit den Upgrade-Anforderungen von utf8mb4 übereinstimmt .

Ich bin auf einen anderen Server umgezogen, der diese Anforderungen erfüllt, aber WP wird dieses database-Upgrade nicht mehr starten: /wp-admin/upgrade.php sagt, Your WordPress database is already up-to-date . Ich habe versucht, meine wp_post Tabelle manuell auf utf8mb4 zu setzen, aber alle meine Sonderzeichen wurden ” “.

Irgendeine Möglichkeit, den maybe_convert_table_to_utf8mb4 in einem einfachen Upgrade zu erzwingen, ohne alle meine speziellen Zeichen zu verlieren?

Vielen Dank!

Solutions Collecting From Web of "Relaunch 4.2 utf8mb4 database Upgrade"

Ich denke, die Antwort auf Ihre Frage ist jetzt “Nein”.

Es gibt keine einfache Möglichkeit, maybe_convert_table_to_utf8mb4 auf Websites auszulösen, wenn sie bereits über WP 4.3 hinaus auf einem Server aktualisiert wurden, der die in diesem Beitrag beschriebenen Anforderungen nicht erfüllt:

https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/

Beachten Sie, dass, basierend auf WP-Quellcode, es scheint, dass sie diese von 4,2 Update-Sequenz auf 4,3 verschoben (es ist nicht mehr in 4.2, die jetzt keine Verbesserungen überhaupt hat), vielleicht in der Hoffnung, mehr Benutzer an Bord zu bekommen.

Also das ist deine Antwort und es ist nervig, aber ist genauer als die anderen ¯_ (ツ) _ / ¯

Wir arbeiten derzeit daran, ein einfaches Skript zu erstellen, mit dem Sie die Essenz der Upgrade-Sequenz basierend auf einem Aktionshaken auslösen können. Wenn wir es stabil und funktionstüchtig machen können, werden wir versuchen, es zurückzugeben und es anderen zu teilen.

Unser grundlegender Plan ist, den tatsächlichen db-Teil von upgrade_430() zu extrahieren, ihn von dem DB-Aktualisierungssystem zu isolieren und es manuell auszulösen.

EDIT: Lösung unten

Während es keine einfache Möglichkeit gibt, das Skript auszulösen, gibt es hier eine upgrade_430() , die auf upgrade_430() basiert, aber als Drop-in konzipiert ist.

https://gist.github.com/carlalexander/4106cfaaf405cec454ba195631bcb6bc

Sie könnten dies in ein Plugin einfügen oder einfach in Ihre functions.php einfügen. In jedem Fall sollte es VORÜBERGEHEND sein.

Es ist so eingerichtet, dass es automatisch ausgetriggers wird, wenn Sie https://yoursite.com/?update-utf8bm4=1 besuchen

Dies stellt sicher, dass es nur ein einziges Mal ausgeführt wird und Sie wählen können, wann (für große databaseen könnte es eine Weile dauern und Sie wollen nicht, dass jemand einen Beitrag bearbeitet, während es passiert).

Wenn Sie den GET-Trigger nicht haben wollen, entfernen add_action einfach den add_action Teil und den if (!isset($_GET['update-utf8bm4'])) .

Nochmal: REMOVE THIS WHEN COMPLETE, du willst keinen GET-Trigger wie diesen herumliegen lassen 🙂

Natürlich, wenn es nicht selbstverständlich ist, erstellen Sie eine Sicherungskopie der database, bevor Sie etwas versuchen, aber Sie würden mit der ursprünglichen Version der database arbeiten – ich würde zwei Dinge versuchen: WordPress-databasereparatur und -wartung und phpMyAdmins Optimiertabellen:

Dies kam von dieser Seite, die eine Menge von Informationen WP Knowledgebase enthält , aber Sie beginnen, indem Sie diese Zeile zu Ihrer Website wp-config.php hinzufügen:

 define('WP_ALLOW_REPAIR', true); 

dann gehe zu http://yoursite.com/wp-admin/maint/repair.php

Sie sollten eine Seite mit zwei Optionen sehen: “database reparieren” und “database reparieren und optimieren”.

Klicken Sie auf “database reparieren und optimieren” und geben Sie dem Skript Zeit zum Ausführen. Sobald sie erfolgreich ausgeführt wurden, erhalten Sie Update-Meldungen, die Sie über den Status verschiedener Tabellen informieren.

Sobald es ausgeführt wurde, sehr wichtig , entfernen Sie die wp_allow_repair Zeile, die Sie gerade zu wp-config.php hinzugefügt haben, löschen Sie sie aus der Datei wp-config.php.

Wenn das nicht funktioniert, können Sie die Tabellenoptimierung von phpMyAdmin ausprobieren, aber wenn WordPress nicht hilft, kann das auch nicht funktionieren. Ich würde es auf der gleichen Version der database versuchen, in der Sie die letzte Reparatur ausgeführt haben.

Gehen Sie zu phpMyAdmin, wählen Sie Ihre database aus, scrollen Sie zum Ende der Seite, aktivieren Sie “Alle überprüfen”, um alle Tabellen in der database auszuwählen, und wählen Sie dann “Optimieren Tabelle” aus dem Auswahlmenü daneben. Das ist es, es wird automatisch gestartet.

Hier sind weitere Details und Screenshots: WPMUDev

Wenn diese beiden Schritte nicht funktionieren – alleine oder zusammen – können Sie versuchen, eine andere Kopie Ihrer Backup-database zu verwenden, um sie in umgekehrter Reihenfolge auszuführen … Viel Glück!

Haben Sie versucht, die databasetabelle Collation zu ändern? Bitte versuchen Sie Folgendes:

Melden Sie sich bei phpmyadmin an und wählen Sie Ihre database aus> Operationen> ändern Sie jetzt Collation von der Dropdown-Liste zu “utf8mb4_unicode_ci” oder ändern Sie die Einstellungen, die auf Ihrem alten Server verwendet wurden.

Ich hoffe, es wird für dich funktionieren.

siehe Screenshot: http://printscr.com/8ip1ro/direct

Denken Sie daran: Wenn Sie eine SQL-Datei von Ihrem alten Server auf Ihren PC exportieren und sie mit einem Texteditor öffnen … und anpassen und speichern .. dann überprüfen Sie bitte, ob Sie die SQL-Datei speichern. Text Editor “Encoding” ist Utf-8 .. siehe meinen Screenshot: http://printscr.com/8ip2nr/direct

Vielen Dank