Tôi đang xây dựng một mô-đun tùy chỉnh trong Drupal 8. Nó bao gồm một số tệp cấu hình YAML.
Khi tôi phát triển, tôi cần thay đổi và thêm vào cấu hình, ví dụ để thêm một trường khác vào thực thể tùy chỉnh của mình.
Hiện tại, cách duy nhất tôi tìm thấy để khiến Drupal nhận thấy các thay đổi là gỡ cài đặt mô-đun và cài đặt lại.
Có cách nào để Drupal kiểm tra xem các tệp cấu hình được cung cấp bởi các mô-đun có giống với cấu hình hoạt động không và nếu không, hãy cập nhật cấu hình hoạt động? Cập nhật mô-đun được xử lý như thế nào? Trong D7 hook_update_N
sẽ được sử dụng để thêm các trường bằng PHP, nhưng có vẻ như điều này sẽ được xử lý bởi CM trong D8?
Những điều tôi đã thử sau khi cập nhật các tệp yml trong mô-đun:
drush cr
, cấu hình đồng bộ.sao chép thủ công tất cả các tệp cấu hình được cập nhật vào
sites/default/files/config_XXX/staging/
- nhưng điều này gây ra lỗi này "Không thể nhập cấu hình theo giai đoạn, vì nó bắt nguồn từ một trang web khác với trang web này. Bạn chỉ có thể đồng bộ hóa cấu hình giữa các phiên bản được nhân bản của trang web này." .nhập thủ công từng tệp một bằng trình quản lý cấu hình. Điều này hoạt động, nhưng rõ ràng phải có một cách tự động hơn.
[EDIT] sử dụng mô-đun config_update theo cách thủ công để kiểm tra các thay đổi và 'hoàn nguyên' về cấu hình của mô-đun. Một lần nữa, đây là thủ công.
EDIT: Từ Quản lý cấu hình - làm và không nên
KHÔNG
Cố gắng thay đổi cấu hình hoạt động trên trang web của bạn bằng cách thay đổi các tệp trong thư mục config / install của mô-đun. Điều này sẽ KHÔNG hoạt động vì Drupal sẽ chỉ đọc từ thư mục đó khi mô-đun được cài đặt.
... nhưng những thay đổi sẽ xảy ra, trừ khi các mô-đun bị ràng buộc với bất kỳ cấu hình nào họ cần trong lần phát hành đầu tiên và có thể không bao giờ cập nhật hoặc thêm cấu hình.
Cảm ơn trước.
hook_update_N
tôi giả định, nhưng tôi không chắc chắn điều gì
hook_update_N
. Bài viết tuyệt vời về Drupal 8 cho các trang web nhỏ (và phần 2 ). Trong D8 "các trang web sở hữu cấu hình của chúng, không phải mô-đun" .