it-swarm-vi.com

Làm thế nào để di chuyển từ môi trường thử nghiệm sang môi trường sản xuất?

Việc di chuyển là từ môi trường địa phương đến môi trường sản xuất. Môi trường sản xuất đã chạy một thời gian và tạo ra rất nhiều bài viết.

Để thêm những thứ mới vào trang web của mình, tôi đã thêm một chủ đề tùy chỉnh và cài đặt CCK, Chế độ xem và các mô-đun khác trong môi trường thử nghiệm cục bộ của tôi. Bây giờ môi trường thử nghiệm cục bộ đã kết thúc, làm thế nào để tôi di chuyển nó sang môi trường sản xuất mà không phá hủy nội dung của cơ sở dữ liệu của nó?

46
enjoylife

Đâ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 nào hợp lý Drupal để xử lý việc dàn dựng cho các cú đẩy sản xuất. Dries Buytaert, anh chàng điều hành chương trình Drupal, đã biến nó thành một trong sáng kiến ​​chính của Drupal 8 . Tất nhiên, Drupal 7 vừa được phát hành, vì vậy sẽ mất một thời gian trước khi nó mang lại bất kỳ trái cây nào.

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: 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 bạn và không phải lo lắng về việc nó bị thổi bay khi bạn di chuyển nội dung của mình.

Đ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ế bán buôn nội dung 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 một 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ó xuất hiện, tôi sẽ thiết lập một bản sao của trang 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.

34
user7

Trong quá trình của chúng tôi.

  1. Chúng tôi có một tập lệnh Shell kéo db từ prod.
  2. Chúng tôi đang sử dụng Hudson để xây dựng lại các nhánh dev/staging của mình để đồng bộ các nhánh dev và dev.

    Vì chúng tôi đang sử dụng Git, mọi tác vụ chúng tôi đang thực hiện đều có chi nhánh riêng, sau đó khi được chuyển đến QA, chúng tôi hợp nhất nó thành chủ như máy chủ dàn dựng để kiểm tra hồi quy.

    Khi chủ đã sẵn sàng, chúng tôi sẽ phát hành thử nghiệm cho Release Server là bản sao trực tiếp (cấu hình, phần cứng, v.v.).

  3. Chúng tôi sử dụng mô đun Feature để triển khai các cấu hình. Một số nội dung chưa được hỗ trợ bởi tính năng, vì vậy chúng tôi sử dụng hook_update_N sau đó chạy updateb.php hoặc drush -vd updb

  4. Sau khi phát hành, thực hiện tính năng hoàn nguyên (drush fra --yes) để hoàn nguyên tất cả các tính năng ghi đè.
  5. Vì chúng tôi đang sử dụng Boost (di chuyển đến Varnish) và Memcache, chúng tôi cần xóa bộ nhớ cache (drush cc all).

    Chúng tôi đang sử dụng rsync để đồng bộ hóa hình ảnh/video của mình, v.v ...

7
ninjascorner

Để di chuyển từ máy chủ XAMPP sang máy chủ khác, tôi đã làm theo hướng dẫn trên trang web này .

Đảm bảo rằng bạn giữ cấu trúc tương tự trên máy chủ sản xuất của mình như bạn đã làm trên máy chủ phát triển của mình. Tôi cũng đã phải chỉnh sửa một số tệp trong Drupal bảng điều khiển quản trị viên đặt tại: admin/config/media/file-system

Đảm bảo rằng Đường dẫn hệ thống tệp công khai Thư mục tạm thời có vị trí chính xác được đặt.

2
kretzm