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?


46

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ó?

Câu trả lời:


34

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

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

Đ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ế nội dung bán buôn 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 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ó được phát hành, tôi sẽ thiết lập một bản sao của trang web 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.


Bạn có thể di chuyển nội dung bằng uuid và uuid_features, nhưng nó vẫn chưa đáng tin cậy.
Jeremy Pháp

7

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

  1. Chúng tôi có một kịch bản 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ẽ thực hiện một bản phát hành thử nghiệm 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 Featuremô-đun để triển khai 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ặcdrush -vd updb

  4. Sau khi phát hành, thực hiện các tính năng Revert ( 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ộ đệm ( 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 ...


Bạn có thể giải thích rõ hơn về bước 2 - Sử dụng Git Tôi hiểu rằng chúng ta có thể hợp nhất bất kỳ thay đổi hệ thống tệp nào, nhưng làm thế nào để bạn đảm bảo tính toàn vẹn của cơ sở dữ liệu? Ngoài ra, mục đích chính xác của việc sử dụng "Tính năng" (để triển khai cấu hình) ở đây là gì? Cảm ơn bạn!
Raj Pawan Gumdal

2

Để 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 tin trong Drupal quản trị bảng điều khiển đặt tại: admin / config / media / tập tin hệ thống

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


Điều này không bao giờ nói về vấn đề "sáp nhập". Câu hỏi nêu rõ rằng sản xuất có dữ liệu nội dung phải còn nguyên vẹn trong khi các cải tiến từ máy chủ dàn dựng phải được hợp nhất trong sản xuất.
Raj Pawan Gumdal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.