Chúng tôi đã viết một kịch bản để xử lý các bãi chứa DB để phân nhánh. Đọc bài viết này .
Hiệu trưởng cơ bản là nó đọc local.xml
để lấy thông tin đăng nhập DB, sau đó kết xuất dữ liệu trên cơ sở đó. Nó chia kết xuất thành hai phần, chỉ cấu trúc và sau đó là dữ liệu. Nhưng điều quan trọng là nó tăng tốc quá trình kết xuất thông thường bằng cách bỏ qua dữ liệu không cần thiết và nhất là ngăn chặn bất kỳ khóa bảng nào trong quá trình kết xuất có thể chặn / treo trang web trực tiếp của bạn.
Khi bạn có kết xuất MySQL, bạn có thể thay đổi URL rất dễ dàng chỉ bằng cách sử dụng sed
sed -i 's/www.mydomain.com/staging.mydomain.com/g' ./var/db.sql
Sau đó chạy một nhập mysql vào DB mới của bạn.
Vì vậy, nếu không có kịch bản, một phiên bản rất cơ bản sẽ trông như thế này.
mysqldump -hHostname -uUsername LiveDbname -p > db.sql
sed -i 's/www.mydomain.com/staging.mydomain.com/g' db.sql
mysql -hHostname -uUsername DevDbname -p < db.sql
Không có lý do nào để phải xóa tệp local.xml hoặc chạy lại trình cài đặt nếu bạn thay đổi URL trong DB theo cách này.
Toàn bộ quá trình phân nhánh được trình bày rõ trong Hướng dẫn Magento GIT của chúng tôi . Đây là một quy trình tốt để tạo các nhánh phát triển, nhưng thu hẹp DB trực tiếp bằng một lề đáng kể. Vì vậy, các bài kiểm tra sẽ không hoàn toàn giống như trên trang web trực tiếp.
Vì vậy, thực hiện kết xuất DB vanilla, thay thế sed, nhập DB là đủ cho một trang web dàn dựng. Và sẽ phản chiếu / kết hợp các trang web trực tiếp càng chặt chẽ càng tốt.
Về mặt ngăn chặn giao tiếp với khách hàng - chúng tôi chưa bao giờ thấy đó là điều cần thiết, vì chúng tôi luôn tạo tài khoản một cách có chủ ý để thử nghiệm, không bao giờ sử dụng đơn đặt hàng thực sự của khách hàng để thử nghiệm.