Các trang web dàn dựng, làm thế nào để bạn quản lý đồng bộ hóa các cập nhật trong DB?


10

Người ta chấp nhận rộng rãi rằng các nhà phát triển nên kiểm tra các bản cập nhật thông qua một trang dàn dựng trước khi phát hành chúng lên máy chủ trực tiếp, tuy nhiên một khi các bản cập nhật phát triển yêu cầu sửa đổi trong Wordpress DB, mọi thứ trở nên phức tạp, vì người dùng trong trang web trực tiếp cũng sẽ cập nhật DB.

Luồng duy nhất (bị nhầm lẫn) tôi có thể tưởng tượng là như sau:

  1. Kiểm tra trên máy chủ cục bộ (WAMP, XAMP, v.v.)
  2. Khi đã sẵn sàng để triển khai, hãy đặt trang web trực tiếp ở chế độ bảo trì
  3. Sao lưu trang web trực tiếp (Sao chép, sqldump, v.v.)
  4. Tạo một bản sao của trang web bị khóa trực tiếp đến trang dàn dựng
  5. Tải các sửa đổi từ môi trường địa phương lên trang web dàn dựng
  6. Kiểm tra trang web dàn dựng
  7. Đẩy các trang web dàn dựng để sống.
  8. Hủy bỏ chế độ bảo trì

Hạn chế của dòng chảy trên:

  • thời gian ngừng hoạt động có thể dài hơn dự kiến ​​cho người dùng trong khi nhà phát triển đang kiểm tra cẩn thận các bản cập nhật trong trang dàn dựng;
  • có thể yêu cầu quản lý sửa đổi thủ công: ví dụ: bố cục trình xây dựng trang weborigin được lưu trữ trong db, do đó, khi bố cục được sửa đổi, nó phải được nhập thủ công trong trang dàn dựng; trong trường hợp này có thể chỉ cần thả và nhập các trang vào trang dàn dựng là đủ và nếu làm việc, hãy nhập chúng trong trang trực tiếp

Tôi tự hỏi nếu có một cách tốt hơn và tự động hơn để đạt được điều này.

Bạn nghĩ sao?

EDIT, theo yêu cầu, một số giải pháp đã được đề xuất trong quá khứ nhưng không có giải pháp nào đưa ra giải pháp dứt khoát:


@ Dan9, tôi nghĩ rằng sẽ an toàn hơn ba để giảm thiểu quyền truy cập vào trang web trực tiếp. Có phải là một thói quen phổ biến để chỉnh sửa bố cục trên trang web trực tiếp? Có lẽ tôi đang lo lắng quá nhiều!
Riccardo

Vâng, bạn có thể tạo, cập nhật, xóa, khôi phục chúng. Bạn đang lo lắng về điều gì?
MinhTri

Vì vậy, thông thường để tải lên bố trí mà không cần thử nghiệm trong trang dàn dựng? Quy trình làm việc điển hình của bạn (địa phương / dàn / sống) là gì?
Riccardo


Có đáng tin cậy không? Bạn đang sử dụng công cụ này?
Riccardo

Câu trả lời:


2

Các nhà cung cấp dịch vụ lưu trữ mới hơn phục vụ riêng cho WordPress thường có các công cụ để giảm bớt nỗi đau này. Tôi đặt các máy khách của mình lên Pantheon có luồng công việc hỗ trợ Git gọn gàng này , nơi mã chỉ di chuyển lên (từ dev đến staging đến sản xuất) và công cụ DB chỉ di chuyển xuống (ngược lại từ mã). Sao chép cơ sở dữ liệu từ sản xuất sang dàn là một cú nhấp chuột với giao diện của họ. Với điều kiện công việc này được tôn trọng, điều này giúp loại bỏ khá nhiều vấn đề về việc làm xáo trộn cơ sở dữ liệu sản xuất, cho phép tôi luôn kiểm tra các thay đổi của mình trên một bản sao mới của dữ liệu DB sản xuất trong giai đoạn phát triển.

Người ta không phải sử dụng Pantheon - bạn có thể áp dụng một cách tiếp cận tương tự trong quy trình của mình bằng các công cụ của riêng bạn (Git + một plugin nhân bản DB như WP Migrate DB). Tôi chỉ thấy cách này hoạt động tốt cho tôi.

Câu hỏi: tại sao bạn sẽ đặt trang web sản xuất của mình ở chế độ bảo trì trong khi thử nghiệm dàn dựng? Không cần phải có điều đó trong phần lớn các trường hợp. Trường hợp duy nhất tôi có thể nghĩ là có một hệ thống rất dễ vỡ rất nhạy cảm với dữ liệu người dùng bổ sung được cung cấp cho nó, với một lỗi nghiêm trọng để khởi động - nhưng đó có thể là dấu hiệu của một vấn đề khác, lớn hơn, nơi mà một người sẽ cần để suy nghĩ lại toàn bộ kiến ​​trúc sản phẩm của họ.


Nhà cung cấp của tôi cho phép tạo các trang web phân trang bằng một lần nhấp và thực hiện trực tiếp với lựa chọn chi tiết trên các bảng được viết lại, tuy nhiên tôi vẫn cần khóa người dùng trong khi thử nghiệm cuối cùng được thực hiện do một phần của việc triển khai đang tiêm dữ liệu phía nhà phát triển vào DB (ví dụ: bố trí trang sitebuilder được lưu trữ trong DB), yêu cầu người dùng ngừng cập nhật trong giai đoạn này. Nếu bạn có một ý tưởng tốt hơn làm thế nào để đạt được bước này, tôi sẽ rất vui lòng chia sẻ với bạn!
Riccardo

BTW, bạn có trải qua dòng dev / staging / live mỗi khi một sửa đổi nhỏ được thực hiện không? Ví dụ: thay đổi một chút bố cục của trang trong trình chỉnh sửa hoặc sửa đổi menu
Riccardo

Yep - các tệp đi qua dev -> staging -> prod mỗi lần (có lẽ bạn có thể vô hiệu hóa dàn hoặc dev - không nhớ). Nhà phát triển dành cho nhóm nhà phát triển, dàn dựng dành cho QA hoặc nhà thiết kế / khách hàng chấp thuận trước khi đẩy lên sản phẩm.
montrealist

1

Hãy xem VersionPress mang phiên bản GIT cho toàn bộ quá trình (tệp và cơ sở dữ liệu)

Theo mô tả trên trang web của họ:

VersionPress cung cấp dàn không đau . Điều này có nghĩa là bạn có thể dễ dàng tạo môi trường kiểm tra an toàn cho các thay đổi của mình và chỉ hợp nhất chúng lại khi chúng sẵn sàng. Hợp nhất là từ khóa ở đây - VersionPress xử lý các tình huống trong đó trang web trực tiếp của bạn có nội dung mới trong thời gian đó một cách liền mạch.


Làm thế nào tôi có thể xác minh độ tin cậy của công cụ này?
Riccardo
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.