Để đối phó với loại hình này DEV và môi trường sản xuất, tôi đã viết một kịch bản perl để giúp tôi với những gì nếu không sẽ là công việc thủ công. Tôi đã đưa ra một số bước quen thuộc tên vì vậy tôi nhớ để chạy chúng theo thứ tự đúng. Tôi chỉ có DEV dưới SVN. Tôi tạo môi trường SẢN XUẤT mỗi lần với tập lệnh này. Bằng cách đó tôi không phải lo lắng về việc duy trì 2 nhánh mã.
Tôi đang sử dụng SVN vì vậy tôi chọn một thư mục thanh toán mới (như/tmp/foobar) của mã DEV của tôi. Nó sẽ không ở đó rất lâu.
Tùy chọn bước 0: diff cấu trúc cơ sở dữ liệu
mysqldump -d -u USER -pPASS mydotcom > production.sql
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql
vim -d production.sql development.sql
Đôi khi plugin sẽ thêm bảng, và điều này sẽ cho thấy. Nếu không, tôi phát lại các thay đổi được thực hiện trong các bảng (cài đặt một plugin) khi nó không có giá trị để phân biệt các bảng nhất định và sao chép các câu lệnh SQL.
bước 1 sạch: Tập lệnh xóa tất cả các tệp trong thư mục hiện tại, thực hiện thanh toán svn mới của nhánh DEV. Thanh toán mới này sẽ được chuyển thành mã PRODUCTION và được sao chép vào webroot của nó.
bước 2 thực hiện: perl chạy tìm kiếm vim và thay thế tên cơ sở dữ liệu trong wpconfig.php. Việc tìm kiếm và thay thế cũng dễ dàng thực hiện trong perl.
system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php');
Xóa thư mục tải lên tệp cục bộ (để chúng tôi không ghi đè lên thư mục SẢN XUẤT). wpcontent/uploads Tôi tin rằng nó đang được cài đặt chuẩn.
Một tìm và thay thế trên tất cả các tập tin văn bản trong phạm vi dự án mà có url DEV của tôi, ví dụ
vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
bước 3 cài đặt. Sao lưu wpcontent/uploads bằng dircopy() để an toàn. Thực hiện một dircopy() của thư mục được dọn dẹp này đến webroot PRODUCTION. Hủy bỏ tất cả các thư mục svn trong webroot như vậy:
find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1
Bây giờ đang DEV của bạn đã được chuyển đổi thành mã SẢN XUẤT bạn thay thế tất cả các URL hardcoded và giữ an toàn xung quanh các thư mục upload mà không có trong SVN. Bạn thậm chí có thể có nó dừng lại và bắt đầu apache cho bạn quá. Tôi hy vọng giải pháp của tôi sẽ giúp giải quyết vấn đề của bạn.
ok, tôi hiểu được wordpress. có lẽ tôi nên làm điều đó rõ ràng hơn. câu hỏi này đặc biệt về quy trình làm việc và tôi đang tìm kiếm câu trả lời với các chi tiết cụ thể. tôi hy vọng trong trường hợp tôi cần viết kịch bản, mọi người có thể cung cấp liên kết – Tony