Nên nhập cấu hình nhập và cập nhật mô-đun theo thứ tự nào?


10

Do phiên bản lược đồ của các mô-đun được lưu trữ trong bộ lưu trữ khóa-giá trị, nên nó là duy nhất cho mỗi trang web và không được đồng bộ hóa thông qua quản lý cấu hình. Điều đó có ý nghĩa, vì các bản cập nhật có thể cần thực hiện các điều chỉnh không được gói gọn trong cấu hình (chẳng hạn như cập nhật cơ sở dữ liệu), nhưng có những thay đổi khác cũng có thể được bao gồm trong cấu hình (ví dụ: thêm giá trị cấu hình mới).

  • Có bất kỳ rủi ro nào khi chạy cấu hình nhập và cập nhật cơ sở dữ liệu theo thứ tự không?
  • Thứ tự ưu tiên để chạy các hoạt động đó là gì?
  • Các móc cập nhật có cần tạo bất kỳ chỗ ở đặc biệt nào cho các mục cấu hình có thể đã được nhập không?
  • Có bất kỳ hoạt động khác có thể được yêu cầu để cập nhật đầy đủ môi trường sản xuất?

Vấn đề liên quan: drupal.org/node/2901418 :
milkovsky

Câu trả lời:


11

Các bản cập nhật phải được chạy trước khi nhập cấu hình

Một vấn đề đang chờ xử lý đối với lõi sẽ đảm bảo rằng các phiên bản mã và lược đồ khớp với nhau trước khi cho phép cấu hình được nhập .


Sự cố với nhập cấu hình trước khi cập nhật

  • Một hook cập nhật dựa trên giá trị cấu hình có thể kết thúc bằng một kết quả khác so với khi nó được chạy trên giá trị trước khi nhập.

  • Một bản cập nhật có khả năng thất bại nếu nó cố tạo các thực thể cấu hình đã tồn tại.

Mối quan tâm cho việc nhập cấu hình sau khi cập nhật

  • Nếu một bản cập nhật giới thiệu một thực thể cấu hình mới được chạy trước, nó sẽ tạo ra một mục cấu hình mới sẽ có UUID khác với một thực thể có cấu hình. Tuy nhiên, một khi cấu hình được nhập, thực thể cần được thay thế bằng phiên bản cấu hình.

    Có thể có một vấn đề tiềm ẩn ở đây nếu việc thay thế thực thể sẽ ảnh hưởng đến nội dung liên quan. Ví dụ: nếu một bản cập nhật di chuyển nội dung từ trường này sang trường khác, khi nhập cấu hình, trường sẽ bị thay thế hoàn toàn và nội dung có khả năng bị mất. Trong trường hợp này, quy trình triển khai có thể cần được điều chỉnh để chạy các bản cập nhật trên môi trường đích và xuất cấu hình kết quả.


Trước đây tôi đã để lại một câu trả lời rằng thứ tự không thành vấn đề (chỉ là thứ tự cập nhật và cấu hình phải giống như đã được thực hiện). Tôi nghĩ rằng tôi đã sai, bởi vì bạn nên luôn luôn xuất cấu hình sau khi cập nhật. Vì vậy, trên cục bộ, cập nhật rồi xuất, triển khai, cập nhật rồi nhập.
ognockocaten

Khi vấn đề được liên kết thảo luận, có một trường hợp trong đó các cập nhật thực thể của chúng tôi yêu cầu một trường mới được nhập nếu không thì hook post_update sẽ thất bại. Trong trường hợp này, chúng tôi cần nhập cấu hình được thực hiện trước khi cập nhật cơ sở dữ liệu. Có vẻ như mới nhất về điều này là ở đây: drupal.org/project/drupal/issues/2901418
atwixtor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.