Luncurkan 4.2 pembaruan basis data utf8mb4

14

Saya memperbarui WP ke 4.2 saat berada di server lama, yang tidak cocok dengan persyaratan upgrade utf8mb4 .

Saya pindah ke server lain yang sesuai dengan persyaratan ini, tetapi WP tidak akan meluncurkan pemutakhiran basis data ini lagi: /wp-admin/upgrade.php mengatakan Your WordPress database is already up-to-date. Saya mencoba mengatur wp_postmeja saya ke utf8mb4 secara manual tetapi semua karakter spesial saya menjadi " ".

Adakah cara untuk memaksa meluncurkan maybe_convert_table_to_utf8mb4upgrade yang sederhana, tanpa kehilangan semua karakter spesial saya?

Terima kasih!

Joan
sumber

Jawaban:

5

Saya pikir jawaban untuk pertanyaan Anda saat ini adalah "Tidak".

Tidak ada cara mudah untuk memicu maybe_convert_table_to_utf8mb4di situs setelah mereka telah ditingkatkan melampaui WP 4.3 pada server yang tidak memenuhi persyaratan yang ditetapkan dalam posting ini:

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

Perhatikan bahwa, berdasarkan pada melihat kode sumber WP, tampaknya mereka memindahkan ini dari urutan pembaruan 4.2 ke 4.3 (tidak lagi hadir dalam 4.2, yang sekarang tidak memiliki upgrade sama sekali), mungkin berharap untuk mendapatkan lebih banyak pengguna.

Jadi itu jawaban Anda dan itu menyebalkan tetapi lebih akurat daripada yang lain ¯_ (ツ) _ / ¯

Saat ini kami sedang berupaya membuat skrip sederhana yang memungkinkan Anda memicu esensi dari urutan pemutakhiran berdasarkan kait tindakan. Jika kami dapat membuatnya stabil dan berfungsi, kami akan mencoba untuk kembali dan membagikannya di sini agar dapat digunakan orang lain.

Rencana dasar kami adalah mengekstrak bagian db aktual upgrade_430(), mengisolasinya dari sistem pembaruan db, dan memicu secara manual.

EDIT: SOLUSI DI BAWAH

Meskipun tidak ada cara mudah untuk memicu skrip, berikut ini adalah solusi kode tangan, yang didasarkan pada upgrade_430()tetapi dirancang sebagai drop-in.

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

Anda bisa memasukkan ini ke dalam plugin, atau cukup menempelkannya di functions.php Anda. Either way itu harus SEMENTARA.

Sudah diatur untuk memicu secara otomatis ketika Anda mengunjungi https://yoursite.com/?update-utf8bm4=1

Ini memastikan bahwa itu hanya berjalan satu kali dan Anda bisa memilih kapan (untuk database besar mungkin perlu waktu dan Anda tidak ingin ada orang yang mengedit posting saat sedang terjadi).

Jika Anda tidak ingin pemicu GET cukup hapus add_actionbagian dan if (!isset($_GET['update-utf8bm4']))bagiannya.

Lagi: HAPUS INI KETIKA SELESAI, Anda tidak ingin meninggalkan pemicu GET seperti ini di sekitar :)

jerclarke
sumber
2

Tentu saja, jika perlu dikatakan, buat cadangan database sebelum mencoba apa pun, tetapi Anda akan bekerja dengan versi asli database — saya akan mencoba dua hal: perbaikan dan pemeliharaan database WordPress, dan tabel optimalisasi phpMyAdmin:

Ini berasal dari halaman ini, yang memiliki banyak info WP Knowledgebase , tetapi Anda mulai dengan menambahkan baris ini ke wp-config.php situs Anda:

define('WP_ALLOW_REPAIR', true);

kemudian buka http://yoursite.com/wp-admin/maint/repair.php

Anda akan melihat halaman dengan dua opsi: 'Perbaiki Database' dan 'Perbaiki dan Optimalkan Database.'

Klik pada 'Perbaiki dan Optimalkan Database' dan berikan waktu skrip untuk berjalan. Setelah berjalan dengan sukses, Anda akan mendapatkan pesan pembaruan yang memberi tahu Anda status berbagai tabel.

Segera setelah dijalankan, sangat penting , hapus baris wp_allow_repair yang baru saja Anda tambahkan ke wp-config.php, hapus dari file wp-config.php.

Jika itu tidak berhasil, Anda dapat mencoba optimasi tabel phpMyAdmin, tetapi jika WordPress tidak membantu, itu mungkin tidak baik. Saya akan mencobanya pada versi database yang sama dengan Anda menjalankan perbaikan terakhir.

Pergilah ke phpMyAdmin, pilih database Anda, gulir ke bagian bawah halaman, centang 'Periksa Semua' untuk memilih semua tabel dalam database, lalu pilih "Optimalkan Tabel" dari menu pilih di sebelahnya. Itu saja, itu akan mulai secara otomatis.

Berikut ini detail dan tangkapan layar lainnya: WPMUDev

Jika kedua langkah ini tidak berhasil — sendiri atau bersama — Anda dapat mencoba menggunakan salinan lain dari basis data cadangan Anda untuk menjalankannya dalam urutan terbalik ... Semoga beruntung!

Vanessa King
sumber
1
Apakah 'Memperbaiki dan Mengoptimalkan Database.' luncurkan ulang maybe_convert_table_to_utf8mb4(seperti yang dilakukan pembaruan WP)? Anda tidak menyebutkannya dalam jawaban;)
Joan
Hai Joan, maaf atas kekhilafannya ... Saya belum melihat penyebutannya secara khusus di catatan, tidak, tapi saya kira itu akan terjadi, asalkan Anda menjalankan pengoptimalan di WordPress 4.2+. Dari catatan inti: [ make.wordpress.org/core/tag/wpdb/]
Vanessa King
Memiliki semua tabel UTF8 dan menjalankan perbaikan dan optimalisasi. Tidak mengonversinya ke utf8mb4. Juga tabel yang bukan MyIsam tetapi InnoDB dan sudah utf8mb4 tidak diperbaiki atau dioptimalkan.
ulas
Ya ini bukan jawaban atas pertanyaan maaf.
jerclarke
0

Sudahkah Anda mencoba mengubah Collation tabel database? Silakan coba ini:

Login ke phpmyadmin> pilih database Anda> Operasi> sekarang ubah Collation dari drop-down ke "utf8mb4_unicode_ci" atau ubah dengan apa yang digunakan di server lama Anda.

Saya harap ini akan berhasil untuk Anda.

lihat tangkapan layar: http://prntscr.com/8ip1ro/direct

Ingat: Jika Anda mengekspor file sql dari server lama ke pc Anda dan membukanya dengan editor teks apa pun ... dan menyesuaikan dan menyimpan .. maka silakan periksa kapan Anda menyimpan file sql Editor Teks "Pengodean" adalah Utf-8 .. lihat tangkapan layar saya: http://prntscr.com/8ip2nr/direct

Terima kasih

NoDiv_NoClass
sumber
Inilah yang saya coba (juga) seolah-olah saya meluncurkan fungsi, hasil yang sama ( di mana-mana). Mencari cara untuk meluncurkan kembali fungsi WP dengan mudah ...
Joan