Giữ cơ sở dữ liệu WP được đồng bộ hóa trên nhiều nhà phát triển bằng git


33

Tôi đang làm việc để cải thiện quy trình công việc git của mình vì nó áp dụng cho các dự án phát triển WordPress của tôi. Thông thường, khi phát triển hệ thống quản lý nội dung, tôi sẽ tạo một máy chủ phát triển (như http://dev.finalsitename.com) có chứa các loại bài đăng và phân loại tùy chỉnh sẽ được sử dụng trong phiên bản sản xuất. Điều này cho phép khách hàng của tôi bắt đầu thêm nội dung của họ vào trang web.

Trong khi họ đang thực hiện nhiệm vụ này, tôi thường xây dựng giao diện cũng như các chương trình / plugin tùy chỉnh sẽ được sử dụng trên môi trường localhost của tôi. Để đảm bảo rằng tôi không ghi đè lên bất kỳ bản cập nhật nào của họ, tôi thường kéo một bản sao cơ sở dữ liệu của họ xuống và thay thế bản cập nhật của tôi. Tuy nhiên, đôi khi tôi chỉ cần nhảy vào khu vực quản trị WP và thay đổi cài đặt hoặc một cái gì đó nhỏ ...

Nếu có nhiều nhà phát triển làm việc trong một dự án WordPress, mỗi người sẽ thực hiện kết xuất cơ sở dữ liệu (được đánh dấu thời gian) của phiên bản trang web của chúng tôi và đưa vào thư mục gốc trước khi cam kết và đẩy chi nhánh địa phương của họ trở lại kho lưu trữ từ xa. Vấn đề với cách tiếp cận này là cơ sở dữ liệu thường không đồng bộ mà không có cách dễ dàng để xác định nên sử dụng cái nào.

Các nhà phát triển khác đang làm gì để giữ cho cơ sở dữ liệu của họ đồng bộ trong khi vẫn cho phép nhiều nhà phát triển (và khách hàng / nhà sản xuất nội dung) làm việc trên cùng một dự án?

Câu trả lời:


12

Có 3 tùy chọn từ dễ nhất ->

  1. Chỉ sử dụng một cơ sở dữ liệu từ xa mà tất cả các bạn kết nối với nhiều bản sao lưu. Bằng cách đó, bạn chỉ cần lo lắng về các tệp chứ không phải db.

  2. Sử dụng chức năng nhập và xuất được tích hợp trong WordPress và ném nó vào quyền kiểm soát phiên bản của bạn ngay vào root wp (như trong một thư mục mới). Chắc chắn phải mất thêm vài phút nhưng nó rất đơn giản và bạn có thể tự động hóa nó, nhưng quan trọng hơn là nó sẽ trở thành một phần của kiểm soát phiên bản.

  3. Sử dụng tập lệnh cập nhật tùy chỉnh để phiên bản đồng bộ hóa cơ sở dữ liệu thực tế. Tôi thực sự không biết làm thế nào bạn có thể quản lý điều đó với git bởi vì nó chỉ là một kịch bản và không thực sự biết điều gì đang xảy ra, tôi biết có các công cụ của bên thứ 3 thực hiện quảng cáo và miễn phí này ( http: // www. liquidibase.org/ ).


1

Nếu bạn cần giữ cho cơ sở dữ liệu đồng bộ hoàn toàn, tức là. lược đồ và dữ liệu, bạn có thể phát triển một hệ thống phiên bản tùy chỉnh dựa trên các bản sao lưu.

Hoặc nếu bạn muốn giữ dữ liệu khỏi sản xuất nhưng phát triển lược đồ của nó, bạn có thể làm việc với một giải pháp tùy chỉnh (một tệp được phiên bản với tất cả các thay đổi lược đồ) hoặc với một giải pháp chuẩn dựa trên khái niệm migration. Bạn có thể tìm thấy rất nhiều thông tin trong luồng stackoverflow này: Các cơ chế để theo dõi các thay đổi lược đồ db .


Cũng là một cái đơn giản ở đây stackoverflow.com/questions/825787/ từ
grm

1

Tôi xin lỗi nếu điều này có vẻ cực kỳ rõ ràng nhưng nếu tất cả các bạn cần phải có cùng một bản sao của cơ sở dữ liệu có cùng cấu trúc, thì sẽ không có ý nghĩa gì khi có một máy chủ SQL văn phòng / trung tâm và sử dụng nó? Sao chép nó cục bộ nếu bạn cần thử nghiệm nhưng giữ nó làm tiêu chuẩn defacto có thẩm quyền và lấy bản sao lưu của máy chủ đó và chỉ máy chủ đó.

Mặt khác, khi tôi đang làm việc trong một dự án nhóm, chúng tôi có các thiết lập riêng với nội dung khác nhau. Mã này đảm nhiệm việc nâng cấp và di chuyển các cấu trúc bảng và chúng ta có thể truy cập các cài đặt mã cục bộ của mỗi bà mẹ chạy trên các máy của chúng tôi qua mạng LAN, do đó chúng tôi không cần phải chia sẻ nội dung.

Nếu chúng tôi nhập nội dung, chúng tôi sẽ chạy nó trên máy chủ thử nghiệm, sau đó chúng tôi có thể xuất và nhập vào máy chủ trực tiếp hoặc chúng tôi có thể di chuyển trực tiếp đến máy chủ sản xuất nếu không có phiên bản trực tiếp nào tồn tại.

Nếu tại bất kỳ thời điểm nào bạn cần tách dữ liệu WIP trực tiếp và dữ liệu WIP, thì chỉ cần sử dụng nhánh phát triển, thử nghiệm và phát triển trực tiếp trong kho lưu trữ của bạn

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.