Apa prosedur terbaik untuk menggabungkan pekerjaan yang dilakukan pada salinan pengembangan situs ke salinan produksi langsung? Sering kali ada banyak konten baru yang ditambahkan ke situs sejak pengembangan dimulai pada fitur-fitur terbaru. Dan sebagian besar penambahan situs akan melibatkan perubahan basis data. Jadi menyalin file baru itu mudah, tetapi bagaimana dengan database? Bagaimana Anda menggabungkan perubahan Anda dengan database produksi yang ada tanpa kehilangan konten baru yang ditambahkan sejak terakhir kali Anda memperbarui situs produksi? Apakah ada modul yang membantu ini?
40
Jawaban:
Untuk jenis konten, tampilan, dan perubahan struktur pada situs pengembang lihat menggunakan Fitur untuk mengekspor database ke kode.
Untuk migrasi konten ada banyak pilihan, tetapi bukan solusi tunggal yang solid. Salah satu contoh adalah suite Penerapan .
sumber
Saya pada dasarnya mengadopsi dua aliran pemikiran di sini (pemikiran ketiga, mengerjakan perbedaan basis data, saya tidak akan membahas karena kompleksitasnya cukup tinggi).
1) Menyebarkan dengan menjatuhkan basis data produksi, dan mengimpor mysqldump dari database pengembangan. Secara opsional, jalankan regex find / replace terlebih dahulu pada tautan absolut apa pun yang dikodekan keras yang mereferensikan URL dev di dump SQL. Setelah mengimpor dev db ke dalam prod, secara otomatis menjalankan pernyataan SQL (biasanya melalui skrip) setelah itu untuk mengubah pengaturan yang berbeda untuk prod daripada dev (misalnya, mungkin Anda memiliki dalam tabel variabel beberapa pengaturan koneksi untuk menghubungkan ke sistem eksternal yang Anda perlu ubah ke titik pada prod sistem eksternal dan bukan pada versi dev).
2) Gunakan modul Fitur , sebagaimana disebutkan oleh budda, untuk pengaturan admin, dan gunakan modul Node Ekspor untuk ekspor / impor konten dalam kombinasi dengan modul Hapus Semua . Jadi alur kerjanya adalah:
Satu catatan, saya akan sangat menyarankan mengadopsi alur kerja standar, di mana konten berjalan satu arah saja. Entah Dev -> Prod atau Prod -> Dev (Saya lebih suka yang ini).
Saya telah melakukan ini, dan saya melakukan ini pada beberapa sistem besar, dengan hasil yang cukup baik, tetapi akan selalu ada banyak cara untuk mengiris apel ini, pilih cara mana yang paling cocok untuk Anda.
sumber
Database dump dari copy situs langsung & copy pengembangan situs dalam file SQL (gunakan parameter & pengaturan yang sama untuk kedua dump).
Kemudian, bandingkan kedua file SQL menggunakan alat perbandingan kecil, ExamDiff . Ini akan menampilkan perbedaan file berdampingan dengan warna berbeda. Anda dapat langsung melompat ke perbedaan juga (tanpa menggulir). Periksa perbedaannya & tambahkan / edit baris ke file SQL situs langsung. Pastikan tidak ada jalur absolut / URL lingkungan pengembangan di file itu. Itu selesai! Saatnya memulihkan database untuk situs langsung.
Buat hidup Anda lebih mudah:Pada langkah pertama, buang hanya tabel yang diubah. Misalnya, jika Anda telah mengedit modul dalam copy pengembangan yang menargetkan tabel terpisah, buang saja tabel ini. Jika Anda tidak yakin tentang tabel tertentu, seluruh dump database baik-baik saja.
sumber