Bagaimana cara memigrasi subsite dari multisite dev ke multisite produksi


12

Saya mencari cara terbaik dan paling aman untuk mengembangkan secara lokal sejumlah subsite menggunakan multisite dan memindahkannya ke lingkungan produksi ketika mereka siap.

Saya sudah memigrasikan instalasi multisite lengkap dengan subsite pertama yang sekarang aktif. Saya lebih suka untuk mengembangkan situs lain di server lokal jadi saya meninggalkan server produksi sendiri tetapi jelas saya tidak bisa melakukan migrasi penuh lagi.

Saya mencari solusi tetapi semua yang saya temukan adalah tentang memindahkan satu situs ke multisite atau sebaliknya, tidak ada "memindahkan subsite dari multisite ke multisite".

Saya ingin menyimpan semuanya: pengaturan, widget, dan sebagainya.


1
Saya pikir plugin BackupBuddy komersial dapat melakukan ini, tetapi saya akan tertarik melihat jawaban yang lebih umum untuk ini.
Paling lambat

Karena string serial dalam database itu tidak mudah untuk melakukannya. Saya belum melihat plugin untuk migrasi murni sejauh ini, tapi itu benar-benar sesuatu yang harus dilakukan. Satu-satunya memindahkan bagian "paling" dari satu blog ke blog lain adalah melalui mekanisme ekspor / impor XML, tetapi Anda masih harus memperbaiki banyak jalur setelahnya.
2ndkauboy

1
Opsi terbaik yang Anda miliki adalah melakukannya dengan kueri sql langsung. Saya telah melakukannya lebih dari sekali, dan itu berfungsi dengan baik jika Anda cukup berhati-hati.
krembo99

@ krembo99, bisakah Anda menjelaskan sedikit lebih banyak tentang teknik Anda?
molokom

@Rarst, sejauh menyangkut BackupBuddy, ini dari FAQ mereka: "Tidak. Dukungan Multisite BackupBuddy bersifat eksperimental. Tidak direkomendasikan untuk situs produksi dan tidak didukung secara resmi."
molokom

Jawaban:


4

Ini mungkin agak membosankan, tapi mudah-mudahan ini bisa membantu. Semakin sedikit perubahan dari satu lingkungan ke yang berikutnya, proses ini akan semakin tidak menyakitkan. Khususnya, jika domain, id situs, jalur file tetap sama, proses ini akan semakin tidak menyakitkan.

Posting ini mengasumsikan beberapa pengetahuan tentang manajemen basis data. Ini bukan langkah demi langkah lengkap karena Anda harus mencari di forum dan mungkin membuat utas khusus untuk langkah apa pun yang Anda mengalami masalah, misalnya, jika Anda memerlukan bantuan dengan mengekspor tabel database.

Yang paling penting untuk dilakukan adalah mencadangkan seluruh database dan file Anda untuk situs pengembang lokal dan lokasi baru jika terjadi kesalahan. Harapkan ada sesuatu yang salah. Terkejut jika tidak.

Memindahkan file tema Anda harus cukup mudah. Unggah file tema Anda ke direktori wp-content / themes dan aktifkan seperti biasa. Saya berasumsi ini adalah tema bersama yang dimiliki semua blog.

Unggah file plugin ke konten-wp / plugin di lokasi baru. Jangan aktifkan mereka.

Perhatikan bahwa konten apa pun yang eksklusif untuk blog yang Anda migrasikan akan berlokasi di direktori yang terlihat di wp-content/blogs.dir/2/filesmana 2 adalah id situs. Jika dimungkinkan untuk mempertahankan ID situs ini di lokasi baru, itu akan membantu untuk meminimalkan konflik dalam database setelah bermigrasi ke lokasi baru. Jika tidak, Anda harus memperbarui basis data Anda untuk mencerminkan jalur baru.

Anda harus mengekspor tabel multisite yang terkait dengan blog yang Anda coba migrasi dan impor ke lokasi baru. Anda harus mengedit tabel yang menyimpan data yang terkait dengan blog yang Anda migrasi. Pastikan awalan tabel ini sama di lokasi baru.

Misalnya, tabel wp_blogs untuk blog Anda berisi id blog, id situs, domain, dan jalur yang memungkinkan WordPress multisite mengenali dan bekerja dengan blog Anda. Edit salah satu dari ini yang tidak lagi benar untuk mencerminkan lokasi baru, tetapi silakan baca sisa posting ini sebelum mencoba melakukannya.

Lihat Ikhtisar Tabel Multisite

Untuk memigrasi pengaturan WordPress dan plugin Anda agar blog ditransfer , Anda harus menonaktifkan semua plugin secara lokal, lalu mengekspor tabel spesifik situs Anda (referensi codex), termasuk yang untuk plugin Anda. Impor tabel ini ke basis data lokasi baru.

Pastikan lokasi baru menggunakan awalan basis data yang sama dengan tabel yang Anda impor. Awalan akan berisi id situs untuk blog Anda dan terlihat seperti itu wp_2_options, wp_2_posts, wp_2_postmeta.
Lihat Menjelajahi WordPress Multisite oleh Lisa Sabin-Wilson

Saya berasumsi Anda tahu cara mengimpor / mengekspor melalui phpmyAdmin atau dengan perintah mysqldump di terminal Anda. Itu sedikit di luar cakupan posting ini, tetapi di sini ada contoh ekspor yang seharusnya membantu.

Dari Bagaimana Anda tabel khusus mysqldump? (Sintaks sedikit diedit agar lebih jelas.):

Jika Anda membuang tabel t1, t2, dan t3 dari database bernama mydb

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Sebelum mengaktifkan plugin di situs baru, buka pengaturan permalink Anda di admin cp dan simpan pengaturan untuk memperbarui file database ke url situs baru. Aktifkan plugin Anda dan lihat apakah ada masalah.

Satu masalah yang mungkin Anda temui adalah dengan serialisasi data di tabel Anda.

"[...] Referensi ke nama atau lokasi domain lama akan tetap ada dalam database, dan itu dapat menyebabkan masalah dengan tautan atau tampilan tema.

Jika Anda melakukan pencarian dan mengganti seluruh database Anda untuk mengubah URL, Anda dapat menyebabkan masalah dengan serialisasi data, karena fakta bahwa beberapa tema dan widget menyimpan nilai dengan panjang URL Anda ditandai. " Ketika Nama Domain atau URL Anda Perubahan

Perlu diingat bahwa serialisasi data dapat menyebabkan konflik dalam tabel database yang berkaitan dengan plugin Anda juga. Daripada melakukan pencarian manual dan mengganti url yang disimpan dalam database, gunakan pencarian database dan ganti skrip yang direkomendasikan dalam tautan codex sebelumnya. Jika hanya ada beberapa contoh serialisasi dalam database, Anda bisa mengeditnya secara manual melalui phpMyAdmin atau apa pun preferensi Anda untuk mengelola database Anda.

Satu masalah lagi yang mungkin Anda temui adalah bahwa setiap jalur file yang salah disimpan dalam tabel database perlu diperbarui untuk mencerminkan lokasi baru. Ini bisa menjadi kasus untuk direktori media atau direktori yang digunakan oleh plugin tergantung pada bagaimana plugin itu dirancang. Sekali lagi, Anda akan ingin menggunakan skrip pencarian dan ganti untuk memastikan tidak ada konflik serialisasi saat memperbarui jalur file. Atau, Anda bisa melihat tabel dan memperbaruinya secara manual.


Terima kasih! Jadi sepertinya tidak ada manfaat sebenarnya dari bekerja dengan cara ini: itu adalah tas yang menyakitkan. Akan lebih baik mengembangkan situs tunggal lokal dan bermigrasi ke lingkungan multisite?
molokom

Anda mungkin mengalami banyak masalah yang sama, tetapi seharusnya membutuhkan lebih sedikit tabel yang harus Anda migrasi. Hanya untuk memberi Anda ide, inilah panduan yang layak untuk itu yang disebut Pindahkan Blog yang Ada ke WordPress Multi-Site . Saya akan menyerahkan kepada Anda untuk menentukan mana yang lebih efisien bagi Anda sebagai pengembang.
iyrin

0

Tidak bisakah Anda menggunakan fitur Ekspor dan Impor bawaan WordPress? Maka itu hanya masalah memindahkan tema dari satu instalasi ke yang berikutnya melalui FTP. Ini berjalan cukup cepat dan Anda dapat memigrasikan situs di antara pemasangan dalam waktu kurang dari 5 menit.

Anda dapat menyinkronkan kredensial pengguna menggunakan plugin yang bagus yang disebut Sinkronisasi Pengguna .

Saya belum pernah menggunakannya, tetapi ManageWP memiliki alat penyebaran dan kloning yang ramah pengguna untuk beralih dari situs yang ada ke yang baru ... ada baiknya melihat ke dalam.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.