Riavvia l'aggiornamento del database 4.2 utf8mb4


14

Ho aggiornato WP a 4.2 mentre era su un vecchio server, che non corrisponde ai requisiti di aggiornamento di utf8mb4 .

Mi sono trasferito su un altro server che soddisfa questi requisiti, ma WP non avvierà più questo aggiornamento del database: dice /wp-admin/upgrade.php Your WordPress database is already up-to-date. Ho provato a impostare wp_postmanualmente il mio tavolo su utf8mb4 ma tutti i miei caratteri speciali sono diventati " ".

Un modo per forzare l'avvio maybe_convert_table_to_utf8mb4in un semplice aggiornamento, senza perdere tutti i miei caratteri speciali?

Grazie!

Risposte:


5

Penso che la risposta alla tua domanda in questo momento sia "No".

Non esiste un modo semplice per eseguire l'attivazione maybe_convert_table_to_utf8mb4sui siti dopo che sono stati già aggiornati oltre WP 4.3 su un server che non soddisfaceva i requisiti stabiliti in questo post:

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

Si noti che, in base alla ricerca del codice sorgente di WP, sembra che abbiano spostato questo dalla sequenza di aggiornamento 4.2 alla 4.3 (non è più presente nella 4.2, che ora non ha affatto aggiornamenti), forse sperando di coinvolgere più utenti.

Quindi questa è la tua risposta e fa schifo ma è più accurata delle altre ¯_ (ツ) _ / ¯

Attualmente stiamo lavorando per creare un semplice script che ti consenta di attivare l'essenza della sequenza di aggiornamento basata su un hook di azione. Se riusciamo a renderlo stabile e funzionante, proveremo a tornare e condividerlo qui per essere utilizzato da altri.

Il nostro piano di base è estrarre la parte effettiva del db upgrade_430(), isolarla dal sistema di aggiornamento del db e attivarla manualmente.

MODIFICA: SOLUZIONE SOTTO

Anche se non esiste un modo semplice per attivare lo script, ecco una soluzione alternativa codificata a mano, basata su upgrade_430()ma progettata come drop-in.

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

Potresti metterlo in un plugin, o semplicemente incollarlo nelle tue funzioni.php. In entrambi i casi dovrebbe essere TEMPORANEO.

È impostato per attivarsi automaticamente quando visiti https://yoursite.com/?update-utf8bm4=1

Ciò garantisce che venga eseguito solo una volta e puoi scegliere quando (per database di grandi dimensioni potrebbe richiedere del tempo e non vuoi che nessuno modifichi un post mentre sta accadendo).

Se non si desidera avere il trigger GET, è sufficiente rimuovere la add_actionparte e la if (!isset($_GET['update-utf8bm4']))parte.

Ancora: RIMUOVI QUANDO COMPLETO, non vuoi lasciare un trigger GET come questo in giro :)


2

Naturalmente, se è ovvio, fare un backup del database prima di provare qualsiasi cosa, ma lavoreresti con la versione originale del database — Proverei due cose: riparazione e manutenzione del database WordPress e le tabelle di ottimizzazione di phpMyAdmin:

Questo è venuto da questa pagina, che contiene molte informazioni WP Knowledgebase , ma si inizia aggiungendo questa riga al wp-config.php del proprio sito:

define('WP_ALLOW_REPAIR', true);

quindi vai su http://yoursite.com/wp-admin/maint/repair.php

Dovresti visualizzare una pagina con due opzioni: "Ripara database" e "Ripara e ottimizza database".

Fare clic su "Ripara e ottimizza database" e concedere allo script il tempo di eseguire. Una volta eseguiti correttamente, riceverai messaggi di aggiornamento che ti informano sullo stato di varie tabelle.

Non appena è stato eseguito, molto importante , rimuovi la riga wp_allow_repair che hai appena aggiunto a wp-config.php, eliminala dal file wp-config.php.

Se ciò non funziona, puoi provare l'ottimizzazione della tabella di phpMyAdmin, ma se WordPress non ha aiutato, potrebbe non esserlo neanche. Lo proverei sulla stessa versione del database su cui hai eseguito l'ultima riparazione.

Vai in phpMyAdmin, seleziona il tuo database, scorri fino alla fine della pagina, seleziona 'Controlla tutto' per selezionare tutte le tabelle nel database, quindi seleziona "Ottimizza tabella" dal menu di selezione accanto ad esso. Ecco fatto, si avvierà automaticamente.

Ecco ulteriori dettagli e schermate: WPMUDev

Se questi due passaggi non funzionano, da soli o insieme, puoi provare a utilizzare un'altra copia del database di backup per eseguirli nell'ordine inverso ... Buona fortuna!


1
Fa "Ripara e ottimizza il database". riavvio maybe_convert_table_to_utf8mb4(come fa qualsiasi aggiornamento WP)? Non lo hai menzionato nella risposta;)
Joan,

Ciao Joan, scusami per la svista ... Non ne ho visto alcun riferimento specifico nelle note, no, ma immagino che lo farebbe se potesse, purché tu stia eseguendo l'ottimizzazione in WordPress 4.2+. Dalle note di base: [ make.wordpress.org/core/tag/wpdb/]
Vanessa King,

Aveva tutte le tabelle UTF8 ed eseguiva la riparazione e l'ottimizzazione. Non li ho convertiti in utf8mb4. Anche le tabelle che non erano MyIsam ma InnoDB e già utf8mb4 non sono state riparate o ottimizzate.
UR e

Sì, questa non è una risposta alla domanda scusa.
jerclarke,

0

Hai provato a cambiare la tabella del database Fascicolazione? Per favore prova questo:

Accedi a phpmyadmin> seleziona il tuo database> Operazioni> ora cambia le regole di confronto dal menu a discesa in "utf8mb4_unicode_ci" o cambia in quello che era usato sul tuo vecchio server.

Spero che funzionerà per te.

vedi screenshot: http://prntscr.com/8ip1ro/direct

Ricorda: se esporti il ​​file sql dal tuo vecchio server sul tuo PC e lo apri con qualsiasi editor di testo ... e personalizzi e salvi .. quindi controlla quando salvi il file sql Editor di testo "Encoding" è Utf-8 .. guarda il mio screenshot: http://prntscr.com/8ip2nr/direct

Grazie


Questo è quello che ho provato (anche) come se avessi lanciato la funzione, stessi risultati ( ovunque). Alla ricerca di un modo per riavviare facilmente la funzione WP ...
Joan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.