Pesanan apa yang harus dijalankan oleh impor konfigurasi dan pembaruan modul?

10

Karena versi skema modul disimpan dalam penyimpanan nilai kunci, ini unik untuk setiap situs dan tidak disinkronkan melalui manajemen konfigurasi. Itu masuk akal, karena pembaruan mungkin perlu membuat penyesuaian yang tidak dienkapsulasi dalam konfigurasi (seperti pembaruan basis data), tetapi ada perubahan lain yang mungkin juga dimasukkan dalam konfigurasi (misalnya menambahkan nilai konfigurasi baru).

  • Apakah ada risiko menjalankan impor konfigurasi dan pembaruan basis data dalam salah satu urutan?
  • Apa urutan yang disukai untuk menjalankan operasi itu?
  • Apakah kait pembaruan perlu membuat akomodasi khusus untuk item konfigurasi yang mungkin sudah diimpor?
  • Apakah ada operasi lain yang mungkin diperlukan untuk sepenuhnya memperbarui lingkungan produksi?
Gapple
sumber
Masalah terkait: drupal.org/node/2901418 :
milkovsky

Jawaban:

12

Pembaruan harus dijalankan sebelum konfigurasi diimpor

Masalah yang tertunda terhadap core akan memastikan bahwa versi kode dan skema cocok sebelum mengizinkan konfigurasi diimpor .


Masalah dengan konfigurasi impor sebelum pembaruan

  • Kait pembaruan yang mengandalkan nilai konfigurasi dapat berakhir pada hasil yang berbeda daripada jika dijalankan pada nilai pra-impor.

  • Pembaruan berpotensi gagal jika mencoba membuat entitas konfigurasi yang sudah ada.

Masalah untuk konfigurasi impor setelah pembaruan

  • Jika pembaruan yang memperkenalkan entitas konfigurasi baru dijalankan terlebih dahulu, itu akan membuat item konfigurasi baru yang akan memiliki UUID yang berbeda dari yang ada di konfigurasi. Namun, setelah konfigurasi diimpor, entitas harus diganti dengan versi konfigurasi.

    Mungkin ada masalah potensial di sini jika mengganti entitas akan memengaruhi konten terkait. Misalnya, jika pembaruan memigrasikan konten dari satu bidang ke bidang lain, pada konfigurasi impor, bidang tersebut akan sepenuhnya diganti dan konten berpotensi hilang. Dalam hal ini proses penyebaran mungkin perlu disesuaikan untuk menjalankan pembaruan pada lingkungan target dan mengekspor konfigurasi yang dihasilkan.

Gapple
sumber
Saya sebelumnya telah meninggalkan jawaban bahwa pesanan tidak masalah (hanya saja urutan pembaruan dan konfigurasi harus sama dengan yang diterapkan). Saya pikir saya salah, karena Anda harus selalu mengekspor konfigurasi setelah memperbarui. Jadi, pada lokal, perbarui lalu ekspor, gunakan, perbarui kemudian impor.
ognockocaten
Ketika masalah yang terkait dibahas, ada kasus di mana pembaruan entitas kami memerlukan bidang baru yang akan diimpor atau kalau tidak post_update hook akan gagal. Dalam hal ini, kita memerlukan impor konfigurasi yang dilakukan sebelum pembaruan basis data. Tampaknya pendapat terbaru tentang ini ada di sini: drupal.org/project/drupal/issues/2901418
atwixtor