Bagaimana cara bermigrasi dari lingkungan pengujian ke lingkungan produksi?

46

Migrasi dari lingkungan lokal ke lingkungan produksi. Lingkungan produksi telah berjalan beberapa waktu dan membuat banyak artikel.

Untuk menambahkan hal-hal baru ke situs saya, saya menambahkan tema khusus dan menginstal CCK, Views, dan modul lainnya di lingkungan pengujian lokal saya. Sekarang setelah lingkungan pengujian lokal selesai, bagaimana cara saya memigrasikannya ke lingkungan produksi, tanpa merusak konten basis datanya?

menikmati hidup
sumber

Jawaban:

34

Ini adalah masalah non-sepele yang hampir semua orang memiliki jawaban berbeda: tidak ada cara Drupal kanonik untuk menangani pementasan terhadap dorongan produksi. Dries Buytaert, pria yang menjalankan pertunjukan Drupal, menjadikannya salah satu inisiatif utama Drupal 8 . Tentu saja, Drupal 7 baru saja dirilis, jadi akan butuh waktu sebelum itu menghasilkan buah.

Masalahnya dapat dipecah menjadi dua masalah terpisah:

  • Konfigurasi pementasan (variabel, tipe konten, bidang, tampilan, dll.)
  • Pementasan konten (node, pengguna, dll.)

Yang pertama dapat sebagian besar ditangani oleh modul Fitur , yang akan mengambil konfigurasi situs Anda dan mengubahnya menjadi modul yang dapat Anda tambahkan ke instalasi Drupal Anda: dengan cara ini, Anda dapat menambahkannya ke sistem kontrol versi Anda dan tidak perlu khawatir tentang hal itu. terpesona saat Anda memigrasi konten Anda.

Yang terakhir ini sangat rumit, karena di situs yang aktif, kemungkinan konten akan berubah pada produksi bahkan setelah Anda melakukan sinkronisasi awal ke lingkungan pengembangan Anda. Ini mencegah penggantian konten secara grosir selama pementasan seperti yang dapat Anda lakukan dengan konfigurasi.

Selain itu, Drupal tidak menggunakan pengidentifikasi unik universal (UUID) untuk konten: setiap kali node atau pengguna ditambahkan, ID bertambah satu. Jadi, apa yang mungkin node 45 di situs pengembangan Anda mungkin node 90 di situs produksi Anda.

Sayangnya, saya tidak punya solusi yang bagus untuk ini: pementasan konten adalah kelemahan Drupal. Apa yang saya pribadi lakukan adalah menambahkan konten di situs produksi saja. Jika klien ingin melihat bagaimana konten terlihat sebelum ditayangkan, saya akan membuat klon dari situs produksi yang hanya dapat diakses oleh klien. Kemudian, setelah disetujui, perubahan yang sama kemudian dilakukan langsung ke produksi.

Ada alternatif lain yang bisa dilemparkan: modul Deploy . Seharusnya memanfaatkan Layanan untuk membuat konten pementasan relatif tidak menyakitkan. Tetapi saya tidak dapat menjamin keefektifannya dan tidak memiliki versi Drupal 7.


sumber
Anda dapat memigrasikan konten menggunakan uuid dan uuid_features, tetapi belum dapat diandalkan.
Jeremy French
7

Dalam proses kami.

  1. Kami memiliki skrip shell yang menarik db dari prod.
  2. Kami menggunakan Hudson untuk membangun kembali cabang dev / staging kami untuk menyinkronkan cabang live dan dev.

    Karena kita menggunakan Git, setiap tugas yang kita lakukan memiliki cabang sendiri, maka ketika diteruskan ke QA kita menggabungkannya untuk dikuasai sebagai server staging kami untuk pengujian regresi.

    Ketika master siap, kami melakukan rilis uji ke Release Serveryang merupakan replika langsung (konfigurasi, perangkat keras, dll).

  3. Kami menggunakan Featuremodul untuk menyebarkan konfigurasi. Beberapa barang belum didukung oleh fitur sehingga kami menggunakan hook_update_N lalu jalankan updatedb.php ataudrush -vd updb

  4. Setelah rilis, lakukan Features revert ( drush fra --yes) untuk mengembalikan semua fitur yang diganti.
  5. Karena kita menggunakan Boost (pindah ke Varnish) dan Memcache, kita perlu menghapus cache ( drush cc all).

    Kami menggunakan rsync untuk menyinkronkan gambar / video kami dll ...

ninjascorner
sumber
Bisakah Anda jelaskan langkah 2 - Menggunakan Git Saya mengerti bahwa kami dapat menggabungkan perubahan sistem file dengan mudah, tetapi bagaimana Anda memastikan integritas database? Juga, apa sebenarnya tujuan menggunakan "Fitur" (untuk menggunakan konfigurasi) di sini? Terima kasih!
Raj Pawan Gumdal
2

Untuk bermigrasi dari server XAMPP ke server lain, saya mengikuti instruksi di situs ini .

Pastikan Anda memiliki struktur yang sama pada server produksi Anda seperti yang Anda lakukan pada server pengembangan Anda. Saya juga harus mengedit beberapa file di dashboard Drupal admin yang terletak di: admin / config / media / file-system

Pastikan jalur sistem file Publik dan direktori Sementara Anda telah menetapkan lokasi yang benar.

kretzm
sumber
Ini tidak pernah berbicara tentang masalah "penggabungan". Pertanyaannya dengan jelas menyatakan bahwa produksi memiliki data konten yang harus utuh sementara peningkatan dari server staging harus digabungkan dalam produksi.
Raj Pawan Gumdal