Làm cách nào tôi có thể thực hiện cập nhật cho một trang web, trên một bản sao phát triển, nhưng sau đó di chuyển các bản cập nhật trở lại mà không ghi đè cơ sở dữ liệu đang phát triển của trang web trực tiếp?


20

Tôi đã cố gắng mô tả tiêu đề càng tốt và tôi biết câu hỏi này đã được hỏi trước đó dưới nhiều hình thức khác nhau nhưng tôi không thể tìm thấy câu trả lời hay cho nó và tôi không thể tưởng tượng được rằng không ai giải quyết được vấn đề này.

Thật đơn giản, một khi trang WP hoạt động, nếu nó không phải là trang tĩnh thì nó sẽ tiếp tục cập nhật cơ sở dữ liệu bằng cách thêm bài đăng mới, đơn đặt hàng thương mại điện tử mới, tài khoản người dùng mới, v.v. '

Nếu tôi muốn thực hiện một số thay đổi và cập nhật lớn cho trang web, cách đơn giản và dễ thực hiện nhất là tạo một bản sao cho cài đặt cục bộ hoặc sang miền phát triển khác và thực hiện tất cả các thay đổi ở đó. Khi tất cả các thay đổi được thực hiện, tôi muốn sao chép chúng trở lại trang web trực tiếp.

Nếu các thay đổi chỉ dành cho các tệp, như chủ đề và css, điều đó có phần dễ dàng. Tuy nhiên, nếu các thay đổi liên quan đến các thay đổi trong cơ sở dữ liệu, như thêm các plugin mới và thêm nội dung kết nối / liên quan đến các plugin này, thì tôi không còn có thể sao chép trang web trở lại, bởi vì nó sẽ ghi đè bất kỳ thay đổi mới nào được thêm vào trực tiếp cơ sở dữ liệu của trang web. tất cả bài viết mới, đơn đặt hàng mới, tải lên hình ảnh mới, tất cả sẽ bị xóa.

Bây giờ tôi biết rằng các tình huống khác nhau có các giải pháp khác nhau, nhưng không có phương pháp nào giải quyết tất cả các trường hợp?

Ví dụ: nếu những thay đổi duy nhất được thực hiện cho trang web trực tiếp là các bài đăng mới, thì tôi có thể xuất và nhập các bài đăng vào trang dev và sau đó di chuyển toàn bộ trang web. Tương tự với một số mặt hàng khác, nhưng không phải tất cả các loại mặt hàng. Và vấn đề khác với điều này là chức năng xuất và nhập trong wordpress rất tệ. Nó rất thô sơ và bạn có rất ít tùy chọn để chọn và chỉ xuất các mặt hàng cụ thể. Có lẽ tôi đã thử mọi plugin "nhập / xuất nâng cao" ngoài đó và vẫn chưa có gì để giải quyết vấn đề này.

Vì vậy, trong một chủ đề khác, ai đó đã chỉ ra plugin này về cơ bản cài đặt và hoạt động trên một chủ đề trên trang web trực tiếp, trong khi người dùng thông thường vẫn thấy chủ đề hiện có, nhưng điều đó vẫn không giải quyết được tất cả các loại thay đổi. bởi vì nếu bạn muốn thay đổi nội dung, giả sử menu chân trang hoặc điều hướng, đó là những thứ vẫn sẽ phản ánh trong chủ đề / trang web có thể xem hiện tại và có thể trông ổn trên chủ đề thử nghiệm mới nhưng không phải là chủ đề thử nghiệm trực tiếp.

Có cách nào để phát triển một "nhánh" của một trang trên cùng một trang / cơ sở dữ liệu và sau đó chuyển đổi không? hoặc không có cách nào để phát triển trên một trang dev nhưng sau đó thực sự hợp nhất cơ sở dữ liệu theo cách không phá hủy? Nếu bạn biết những thành phần và những thứ bạn bị ảnh hưởng, sẽ không có cách nào để làm điều đó? hoặc bạn sẽ cần phải là một bậc thầy MySQL để thử một thứ như vậy.

Tôi không thể là người duy nhất có câu hỏi hóc búa này. Tôi không thể tưởng tượng không có giải pháp cho vấn đề này. Điều này có thể giải quyết như thế nào?

Cảm ơn trước.


3
Mọi người đều có vấn đề này và không có giải pháp đơn giản nào, hãy giữ mã trong kiểm soát sửa đổi, thường xuyên chuyển sql sang máy chủ dàn, tạo khóa bảo trì trong quá trình di chuyển (5-10 phút).
Wyck

Tôi không đồng ý. Plugin RAMP của CrowdFavorite là một giải pháp đơn giản cho những ai cần giai đoạn và triển khai nội dung. Gọi nó là "giải pháp đơn giản" có thể là một sự kéo dài, nhưng thật tốt và bất kỳ nhà phát triển nào cũng có thể thiết lập nó (yêu cầu truy cập SSH và MySQL từ xa, v.v.)
jb510 22/03/2016

Có ai đã thử sitepush chưa? Tôi không ngại trả 250 đô la cho Ramp nếu đó là một giải pháp tốt hơn nhưng thật khó để nhìn từ bên ngoài các hệ thống này hoạt động tốt như thế nào mà không cần triển khai và kiểm tra đầy đủ.
James

Không sử dụng sitepush. Âm thanh như thể đẩy DB hoàn chỉnh mặc dù (như Migrate WP DB Pro). Nó tốt cho việc triển khai một trang web tĩnh, nhưng thất bại trên một động trực tiếp (nghĩa là các bài đăng / bình luận mới xảy ra). RAMP thực sự quản lý sự khác biệt giữa DB và sáp nhập, không thay thế DB trực tiếp.
jb510

Bạn có thể muốn sử dụng DBV PHP , một dự án nguồn mở, đặt DB của bạn dưới sự kiểm soát phiên bản. Nó thậm chí có một giao diện người dùng để làm cho việc quản lý dễ dàng. Một tùy chọn khác là chuyển sang ví dụ như Laravel, có công cụ di chuyển được tích hợp trong ứng dụng CLI của nó.
kaiser

Câu trả lời:


2

Thực sự không có cách dễ dàng để làm những gì bạn muốn làm, nhưng những gì tôi sẽ làm là tạo một ảnh chụp nhanh trang web của bạn, thực hiện các thay đổi yoru và nếu có bất cứ điều gì phanh lại khôi phục và thử lại. Nó có thể ngừng hoạt động trong một giờ, nhưng tôi mới làm điều này khi bằng cách nào đó tôi đã chặn một trang web mà tôi đang làm việc. Đây có thể không phải là cách "đúng" để giải quyết vấn đề tuy nhiên đối với tôi nó hoạt động. Chúc may mắn.


Làm thế nào có thể nhóm WP đã không nghĩ về một cách chuyên nghiệp để làm điều này? đó là năm 2018 !!
asael2
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.