Đây là một vấn đề không hề nhỏ mà hầu hết mọi người đều có một câu trả lời khác nhau: không có cách Drupal kinh điển nào để xử lý việc dàn dựng cho các cú đẩy sản xuất. Dries Buytaert, người điều hành chương trình Drupal, đã biến nó thành một trong những sáng kiến quan trọng của Drupal 8 . Tất nhiên, Drupal 7 vừa được phát hành, vì vậy sẽ còn lâu nữa mới có quả.
Vấn đề có thể được chia thành hai vấn đề riêng biệt:
- Cấu hình dàn (biến, loại nội dung, trường, dạng xem, v.v.)
- Nội dung dàn dựng (nút, người dùng, v.v.)
Cái trước có thể được xử lý chủ yếu bởi mô-đun Tính năng , sẽ lấy cấu hình trang web của bạn và biến nó thành mô-đun bạn có thể thêm vào cài đặt Drupal của mình: bằng cách này, bạn có thể thêm nó vào hệ thống kiểm soát phiên bản của mình và không phải lo lắng về nó bị thổi bay khi bạn di chuyển nội dung của bạn.
Điều thứ hai thực sự khó khăn, bởi vì trên một trang web đang hoạt động, có khả năng nội dung sẽ thay đổi khi sản xuất ngay cả khi bạn đã thực hiện đồng bộ hóa ban đầu với môi trường phát triển của mình. Điều này ngăn việc thay thế nội dung bán buôn trong quá trình dàn dựng như bạn có thể làm với cấu hình.
Ngoài ra, Drupal không sử dụng số nhận dạng duy nhất trên toàn cầu (UUID) cho nội dung: mỗi khi thêm nút hoặc người dùng, ID sẽ tăng thêm một. Vì vậy, những gì có thể là nút 45 trên trang web phát triển của bạn có thể là nút 90 trên trang web sản xuất của bạn.
Thật không may, tôi không có một giải pháp tuyệt vời cho việc này: nội dung dàn dựng là một điểm yếu thực sự của Drupal. Những gì cá nhân tôi làm là chỉ thêm nội dung trên trang web sản xuất. Nếu khách hàng muốn xem nội dung trông như thế nào trước khi nó được phát hành, tôi sẽ thiết lập một bản sao của trang web sản xuất mà khách hàng chỉ có thể truy cập. Sau đó, khi được phê duyệt, những thay đổi tương tự sẽ được thực hiện trực tiếp cho sản xuất.
Có một lựa chọn khác được đưa ra xung quanh: mô-đun Triển khai . Nó được cho là tận dụng Dịch vụ để làm cho nội dung dàn dựng tương đối không đau. Nhưng tôi không thể đảm bảo tính hiệu quả của nó và nó không có phiên bản Drupal 7.