Nhóm của tôi phải đối mặt với một vấn đề tương tự. Chúng tôi sử dụng git để phiên bản mã tùy chỉnh của riêng mình như plugin và chủ đề mà chúng tôi viết. Chúng tôi sử dụng Trình soạn thảo để quản lý các phụ thuộc, chẳng hạn như các plugin mà chúng tôi không viết. Chúng tôi kiểm tra các tệp composer.json và composer.lock vào git để giữ cho mọi người đồng bộ hóa. Mỗi nhà phát triển dự kiến sẽ kéo nhánh git master và chạy composer update
trên playpens của họ thường xuyên để mọi người vẫn cập nhật.
Trong cơ sở dữ liệu, các nhà phát triển chủ yếu quan tâm đến cấu hình và chúng tôi thường sử dụng WP-CLI để giữ cấu hình đồng bộ. Ví dụ: chúng tôi có một tập lệnh shell chạy lệnh WP-CLI để bật hoặc tắt các plugin trên cơ sở mỗi máy chủ; một số plugin chỉ được sử dụng trên máy chủ dàn nội dung của chúng tôi, ví dụ, vì vậy tập lệnh có thể được chạy trên bất kỳ máy chủ nào và sẽ chỉ kích hoạt bộ thích hợp trên máy chủ đó. Một số cấu hình quá tốn thời gian cho tập lệnh chỉ được ghi lại và sao chép thủ công nếu cần thiết.
Chúng tôi cũng có một tập lệnh perl sẽ sao chép hoàn toàn cơ sở dữ liệu từ máy chủ dàn nội dung của chúng tôi sang máy chủ QA hoặc dev. Các nhà phát triển có thể sử dụng định kỳ này nếu họ muốn tất cả nội dung hiện tại, mặc dù điều đó thường ít quan trọng hơn việc có mã và cấu hình. Kịch bản thực hiện các tác vụ này:
- myQuery kết xuất cơ sở dữ liệu của máy chủ dàn nội dung, thay đổi tên bảng, tải vào cơ sở dữ liệu của máy chủ đích
- sử dụng wp-cli để thay đổi tham chiếu đến máy chủ dàn trong cơ sở dữ liệu để tham chiếu đến máy chủ đích
- đồng bộ thư mục tải lên trên máy chủ đích với nội dung tải lên của máy chủ dàn dựng
Có một số giải pháp đầy hứa hẹn để thực sự phiên bản cơ sở dữ liệu đang xuất hiện nhanh chóng. VersionPress và Mergebot là hai cái tôi biết và có thể có những cái khác.
Tôi đã viết thêm chi tiết kỹ thuật về cách chúng tôi thiết lập WordPress để hoạt động với git và Trình soạn thảo trên blog của tôi. Cần phải chạy với lõi WordPress trong thư mục riêng để phân tách rõ ràng giữa mã chúng tôi muốn duy trì trong lõi git và lõi WordPress. Chúng tôi coi chính WordPress như một sự phụ thuộc và quản lý nó với Trình soạn thảo.