Về cơ bản, tôi đã áp dụng hai trường phái tư tưởng (trường phái tư tưởng thứ 3, làm cơ sở dữ liệu khác nhau, tôi sẽ không thảo luận vì độ phức tạp khá cao).
1) Triển khai bằng cách loại bỏ cơ sở dữ liệu sản xuất và nhập một mysqldump của cơ sở dữ liệu phát triển. Tùy chọn, chạy một tìm kiếm / thay thế regex trước trên bất kỳ liên kết tuyệt đối được mã hóa cứng nào tham chiếu URL dev trong kết xuất SQL. Sau khi nhập dev db vào prod, sau đó tự động chạy các câu lệnh SQL (thường thông qua tập lệnh) để thay đổi bất kỳ cài đặt nào khác với prod so với dev (ví dụ: có thể bạn có trong bảng biến một số cài đặt kết nối để kết nối với các hệ thống bên ngoài mà bạn cần thay đổi thành điểm tại các hệ thống bên ngoài thay vì ở phiên bản dev).
2) Sử dụng mô-đun Tính năng , như được đề cập bởi phật, cho cài đặt quản trị viên và sử dụng mô-đun Xuất nút để xuất / nhập nội dung kết hợp với mô-đun Xóa tất cả . Vì vậy, quy trình làm việc là:
- sử dụng node_export và các tính năng để xuất các nút / tính năng sang tệp
- Kiểm soát phiên bản tùy chọn (và hy vọng)
- Tải tập tin trên hệ thống prod
- Sử dụng giao diện drush hoặc admin để tải các tính năng
- Sử dụng drush xóa-all hoặc giao diện quản trị để xóa tất cả các nút của loại bạn muốn nhập
- Sử dụng drush ne-import hoặc giao diện quản trị để nhập các nút từ tệp nút bạn đã xuất.
Một lưu ý, tôi rất khuyến nghị nên áp dụng quy trình làm việc tiêu chuẩn, trong đó nội dung chỉ đi theo một hướng. Hoặc Dev -> Prod hoặc Prod -> Dev (Tôi thích cái này).
Tôi đã làm điều này và đang thực hiện điều này trên một số hệ thống lớn, với kết quả khá tốt, nhưng sẽ luôn có nhiều cách để cắt quả táo này, chọn cách nào phù hợp nhất với bạn.