Relancer 4.2 Mise à niveau de la base de données utf8mb4

11

J'ai mis à jour WP à la version 4.2 alors qu'il se trouvait sur un ancien serveur, ce qui ne correspond pas à Exigences de mise à niveau utf8mb4 .

J'ai été transféré sur un autre serveur répondant à ces exigences, mais WP ne lance plus cette mise à niveau de la base de données: /wp-admin/upgrade.php indique Your WordPress database is already up-to-date . J'ai essayé de définir manuellement ma table wp_post sur utf8mb4 mais tous mes caractères spéciaux sont devenus «».

Avez-vous un moyen de forcer le lancement de maybe_convert_table_to_utf8mb4 dans une mise à niveau simple sans perdre tous mes caractères spéciaux?

Merci!

    
posée Joan 20.07.2015 - 17:24

3 réponses

3

Je pense que la réponse à votre question est "non".

Il n'y a pas de moyen facile de déclencher maybe_convert_table_to_utf8mb4 sur les sites une fois qu'ils ont déjà été mis à niveau au-delà de WP 4.3 sur un serveur ne répondant pas aux conditions requises décrites dans ce message:

enlace

Notez que, sur la base du code source de WP, il semble que celui-ci soit passé de la séquence de mise à jour de la version 4.2 à la version 4.3 (il n'est plus présent dans la version 4.2, qui n'a désormais plus aucune mise à niveau), espérant peut-être attirer davantage d'utilisateurs. à bord.

Voilà donc votre réponse et ça craint mais est plus précis que les autres ¯_ (ツ) _ / ¯

Nous travaillons actuellement sur la création d'un script simple qui vous permet de déclencher l'essence de la séquence de mise à niveau en fonction d'un hook d'action. Si nous pouvons obtenir une stabilité et que nous travaillons, nous essaierons de revenir et de le partager ici pour que les autres puissent l'utiliser.

Notre plan de base consiste à extraire la partie de base de données réelle de upgrade_430() , à l’isoler du système de mise à jour de la base de données et à la déclencher manuellement.

EDIT: SOLUTION CI-DESSOUS

Bien qu'il n'y ait pas de moyen facile de déclencher le script, voici une solution de contournement codée à la main, basée sur upgrade_430() mais conçue comme une liste déroulante.

enlace

Vous pouvez mettre ceci dans un plugin, ou simplement le coller dans votre functions.php. De toute façon, il devrait être temporaire.

Il est configuré pour se déclencher automatiquement lorsque vous visitez https://yoursite.com/?update-utf8bm4=1

Cela garantit qu’il n’exécute qu’une seule fois et que vous devez choisir le moment (pour les bases de données volumineuses, cela peut prendre un certain temps et vous ne souhaitez pas que quiconque édite un message pendant son déroulement).

Si vous ne souhaitez pas que le déclencheur GET soit activé, supprimez simplement la partie add_action et la partie if (!isset($_GET['update-utf8bm4'])) .

Encore une fois: ENLEVER CE QUAND COMPLET, vous ne voulez pas laisser un déclencheur GET comme celui-ci traîner:)

    
réponse donnée jerclarke 03.11.2016 - 20:15
2

Bien sûr, si cela va sans dire, faites une sauvegarde de la base de données avant d'essayer quoi que ce soit, mais vous utiliseriez la version d'origine de la base de données. J'essaierais deux choses: la réparation et la maintenance de la base de données WordPress, et l'optimisation de phpMyAdmin. tableaux:

Ceci provient de cette page, qui contient de nombreuses informations WP Knowledgebase , mais vous commencez par ajouter cette ligne au fichier wp-config.php de votre site:

define('WP_ALLOW_REPAIR', true);

puis accédez à enlace

Vous devriez voir une page avec deux options: "Réparer la base de données" et "Réparer et optimiser la base de données".

Cliquez sur 'Réparer et optimiser la base de données' et donnez au script le temps de s'exécuter. Une fois qu'ils ont fonctionné avec succès, vous recevrez des messages de mise à jour vous permettant de connaître l'état des différentes tables.

Dès qu'il est exécuté, très important , supprimez la ligne wp_allow_repair que vous venez d'ajouter à wp-config.php, supprimez-la du fichier wp-config.php.

Si cela ne fonctionne pas, vous pouvez essayer l'optimisation des tables de phpMyAdmin, mais si WordPress ne vous a pas aidé, il se peut que cela ne le soit pas non plus. Je l'essayerais sur la même version de la base de données sur laquelle vous avez effectué la dernière réparation.

Allez dans phpMyAdmin, sélectionnez votre base de données, faites défiler vers le bas de la page, cochez la case "Cocher tout" pour sélectionner toutes les tables de la base de données, puis sélectionnez "Optimiser la table" dans le menu de sélection situé à côté. Ça y est, ça va démarrer automatiquement.

Voici plus de détails et de captures d'écran: WPMUDev

Si ces deux étapes ne fonctionnent pas, seules ou ensemble, vous pouvez utiliser une autre copie de votre base de données de sauvegarde pour les exécuter dans l'ordre inverse ... Bonne chance!

    
réponse donnée Vanessa King 25.09.2015 - 02:29
0

Avez-vous essayé de changer la table de base de données Collation? Essayez ceci:

Connectez-vous à phpmyadmin > sélectionnez votre base de données > Opérations > changez maintenant le classement de la liste déroulante en "utf8mb4_unicode_ci" ou remplacez-le par ce qui était utilisé sur votre ancien serveur.

J'espère que cela fonctionnera pour vous.

voir la capture d'écran: enlace

N'oubliez pas: si vous exportez un fichier SQL de votre ancien serveur vers votre ordinateur et l'ouvrez avec un éditeur de texte ... et personnalisez-le, puis enregistrez-le .., vérifiez si vous enregistrez le fichier SQL Editeur de texte "Encodage" est Utf-8 .. voir ma capture d'écran: enlace

Merci

    
réponse donnée NoDiv_NoClass 21.09.2015 - 06:31

Lire d'autres questions sur les étiquettes