Bagaimana Anda memperbarui server drupal langsung tanpa menimpa konten?

9

Saya memiliki situs yang aktif dan orang-orang secara aktif memasukkan konten. Namun, saya harus membuat beberapa perubahan di lingkungan pengembangan, yang perlu waktu beberapa minggu untuk saya lakukan. Perubahan membutuhkan modul baru untuk dipasang dan yang lama harus dihapus, yang tentu saja mengubah isi dan struktur database.

Pertanyaan saya adalah bagaimana cara mengunggah situs ini kembali ke lingkungan langsung dan memperbarui basis data tanpa menimpa konten baru pengguna baru yang telah ditambahkan selama dua minggu terakhir?

blue928
sumber
Saya kira Anda harus mengunci situs langsung yaitu "tidak ada pengguna dapat menerapkan pembaruan", menyinkronkan situs langsung ke server pengembangan Anda, menerapkan perubahan Anda dan menyinkronkan lagi. Saya memiliki pengaturan berikut: Server pengembangan (hanya untuk menambahkan kode pembaruan dll), server Master - server pengembangan digunakan untuk ini, (di mana pengguna menambahkan konten) dan server langsung (master digunakan untuk yang ini).
Cyclonecode

Jawaban:

3

Thomas Zahreddin benar. Tetapi tergantung pada apa yang telah berubah ("telah mengambil saya beberapa minggu ..."), ada lebih banyak hal untuk dipertimbangkan.

  1. Apakah Anda menambah / mengubah jenis konten. Cobalah untuk mengekspor dan mengimpornya. Pastikan Anda tidak kehilangan konten.
  2. Apakah Anda menambah / mengubah tampilan? Anda dapat mengekspor dan mengimpornya dengan aman.
  3. Pembaruan Modul. Uji mereka pada data saat ini. Selalu ada kemungkinan data pengguna memecah pembaruan.
  4. Konfigurasi modul berubah. Jika tidak terlalu banyak, buat catatan dan ulangi. Lain coba fitur dan modul lengan yang kuat . Pilihan lain adalah untuk mencari tahu nama variabel yang tepat dan menulis nilai ke dalam settings.php.
  5. Anda memiliki konten tambahan dalam sistem dev. Di sini segalanya menjadi sangat berbulu. Anda dapat mencoba modul penempatan atau ekspor simpul . Tapi mereka bukan peluru perak.

Jika Anda tidak memiliki kasus sepele, saya sarankan untuk menguji prosedur Anda sebelumnya. Dan tentu saja mengambil cadangan file dan data sebelum Anda memulai sistem live. ( Backup dan Migrasi sangat berguna di sini.)

BetaRide
sumber
1

Anda harus memeriksa apa yang ingin Anda ubah:

  • contenttype atau bundle -> masukkan contenttype | bundle baru, ekspor dan impor node, atau ubah bundel contenttype | dalam database untuk catatan ini
  • nama bidang tunggal dan ada kejadian di contenttypes | bundles -> misalnya dengan antarmuka admin atau
  • nilai dalam bidang -> tugas terberat: Anda dapat melakukan ini melalui SQL dalam database (mungkin) atau dengan modul seperti migrasi
Thomas Zahreddin
sumber
1

Saya memiliki prosedur yang sama untuk menangani di tempat kerja ketika memperbarui situs web Drupal. Masalah terbesar adalah bahwa Drupal tidak benar-benar melakukan pekerjaan yang baik dalam menjaga konten dan logika terpisah dalam basis datanya.

Jawaban yang diberikan oleh Thomas Zagreddin dan BetaRide akan cukup memberi Anda kesempatan terbaik untuk menyelesaikan migrasi dengan sukses. Sebenarnya tidak ada grail suci pada subjek ini.

Saya ingin memberi Anda tip pengembangan yang menyelamatkan saya dari banyak masalah dengan memperbarui situs web kami: Cobalah untuk menjaga logika Anda sebanyak mungkin dalam kode Anda (modul / tema). Seperti, cobalah untuk menghindari membuat Tampilan sebanyak mungkin. Terkadang Anda harus melakukannya, tetapi itu membutuhkan pembaruan basis data lain ...

Gunakan Manajemen Kontrol Sumber!

Jika Anda dapat menyimpan semuanya sesuai dengan kode (tentu saja, Anda tidak akan selalu bisa melakukan ini), Anda dapat menggunakan SCM seperti Git , SubVersion atau Mercury untuk memperbarui sumber Anda, dan dalam skenario terburuk, kembalikan ke versi sebelumnya dari sumber Anda jika pembaruan Anda tidak berjalan sesuai rencana.

Dan, tentu saja, sebagaimana dibahas dalam jawaban sebelumnya: cadangan, cadangan, cadangan, cadangan ...

Ambidex
sumber
0

Untuk sebagian besar perubahan, Anda dapat menggunakan Modul Fitur. Modul ini hanya dapat mengubah perubahan, apa yang telah Anda lakukan pada lingkungan lokal.

Jika tidak, Anda dapat menggunakan modul ini, Cadangan dan Migrasi yang indah. Cukup instal modul ini daring terlebih dahulu, lalu ambil cadangan seluruh konten atau basis data yang ada, lalu gunakan ini di lokal. Kemudian lakukan perubahan pada lokal apa yang Anda inginkan, kembali mengambil cadangan lokal Anda dan kemudian menyebarkannya secara online.

Rishi
sumber
0

Saya hanya punya masalah yang sama. Untuk menyelesaikannya, saya perhatikan bahwa satu-satunya konten yang saya miliki dalam siaran langsung yang tidak ada di dev adalah detail pengguna baru. Saya hanya masuk ke tab People di admin dan menyalin detail orang di dev. Di dev aku hanya mengetiknya tanpa otomatisasi apapun. Jadi, lain kali saya mengunggah dari dev, rincian orang-orang secara alami akan benar dan tidak akan ditimpa.

Michael O'Callaghan
sumber
Selamat datang di jawaban Drupal! Meskipun saya yakin cara di atas hanya berfungsi baik untuk Anda, itu tidak terdengar sangat kuat. Mengetik barang-barang cenderung rentan terhadap kesalahan pengetikan, dan jika ada hal - hal baru di live lain kali, itu akan ditimpa (kecuali Anda ingat untuk mengetiknya lagi).
Radikal Gratis