Quy trình phát triển Magento: làm thế nào để kiểm soát nguồn cơ sở dữ liệu của cơ sở dữ liệu và cập nhật cài đặt Magento trực tiếp từ bản cài đặt Test magento?


17

Tôi đang đăng câu hỏi này vì tôi muốn biết quy trình phát triển tốt nhất dành cho ai đó muốn quản lý tất cả các khía cạnh của một cửa hàng trực tuyến.

Như với tất cả các phát triển web tất nhiên, có một bản sao trực tiếp và ít nhất một bản sao phát triển của toàn bộ giải pháp phần mềm là điều rất quan trọng. Tuy nhiên, việc quản lý công cụ Magento không giống như quản lý phần mềm "dựa trên tệp" khác vì cũng có một thành phần cơ sở dữ liệu đi kèm, do đó, ngoài thực tế là tôi có thể sử dụng một công cụ như Git làm công cụ VCS để kiểm soát nguồn, làm thế nào Tôi đi về việc quản lý sự khác biệt trong cơ sở dữ liệu giữa các phiên bản trực tiếp và phát triển?

Tất nhiên tôi có thể tạo các bản sao lưu cơ sở dữ liệu trực tiếp thông qua cron và chèn các câu lệnh SQL INSERT từ bản sao lưu vào kiểm soát nguồn, nhưng sau đó hai cơ sở dữ liệu sẽ phát triển riêng trong khi khách hàng đăng ký và đặt hàng trên một cơ sở dữ liệu trực tiếp và khi cập nhật được thực hiện riêng cho cơ sở dữ liệu phát triển. Khi nói đến việc hợp nhất các phiên bản phát triển và trực tiếp, các tệp php có thể được cập nhật không có vấn đề gì thông qua git (sử dụng gitignore trên một tệp duy nhất lưu trữ chi tiết cấu hình cơ sở dữ liệu), nhưng còn các tệp cơ sở dữ liệu thì sao? Làm cách nào tôi có thể hợp nhất hai tệp chứa các câu lệnh INSERT SQL từ hai bản sao lưu mà không gây ra thảm họa và phá hỏng hệ thống?

Đây là khu vực mờ ám trong vòng đời phát triển Magento mà tôi đang phải đối mặt: quản lý sự khác biệt của cơ sở dữ liệu.

Dường như đối với tôi, giống như giải pháp duy nhất để đồng bộ hóa nội dung cơ sở dữ liệu khác nhau giữa phiên bản phát triển / thử nghiệm và phiên bản trực tiếp của cửa hàng Magento là viết ra một mảnh giấy tất cả các thay đổi được thực hiện trong phiên bản phát triển thông qua Bảng quản trị Magento, và hy vọng không mắc lỗi nào, và sau đó khi mọi thứ đã được kiểm tra và hoạt động, hãy chuyển sang phiên bản trực tiếp và thực hiện những thay đổi chính xác đó trong khi Magento được đưa vào chế độ ngoại tuyến và được đưa vào chế độ bảo trì. Vì đây là một quá trình thủ công, nên nó dễ bị lỗi.

Vì vậy, cách tốt hơn để xử lý đồng bộ hóa cơ sở dữ liệu giữa máy chủ magento thử nghiệm và máy chủ magento trực tiếp là gì?

Cảm ơn.


2
để định cấu hình: github.com/punkstar/mageconfigsync
B00mer

Câu trả lời:


3

Tùy chọn mà tôi biết

1.) Thủ công - nói cách khác là lặp lại hành động của bạn một cách thủ công ở back-end = như bạn đã đề cập dễ bị lỗi, chậm

2.) Ở cấp độ cơ sở dữ liệu với các truy vấn SQL trực tiếp = dễ bị lỗi

3.) Tạo tiện ích mở rộng bổ sung, thực hiện thay đổi thông qua tập lệnh thiết lập / nâng cấp sql. Những tập tin này là một phần của kho lưu trữ của bạn và có thể được triển khai. Cách tiếp cận này chủ yếu bỏ qua UI.

4.) Đã có một số công việc đang diễn ra khi cố gắng làm cho một số quy trình công việc này trở nên dễ chịu hơn trong các dự án như thế này , nhưng tôi nghĩ nó chưa hoàn toàn sẵn sàng cho thời gian chính.

Trong số tất cả các tùy chọn này, tôi hiện đang ủng hộ 3.)


Vâng, tôi cũng vậy, ủng hộ 3 là tốt. Ai sẽ không. Tuy nhiên, vì 3 là lựa chọn thực sự duy nhất và nó không ổn định cho đến giờ tôi sẽ bỏ qua tất cả các đề xuất và chỉ thử nghiệm nhằm mục đích hiểu cách thức hoạt động của giao diện người dùng trên máy chủ cục bộ và thực hiện tất cả danh mục sản phẩm và các sản phẩm và các cập nhật khác trực tiếp trên máy chủ trực tiếp, có thể sẽ ngoại tuyến trong một thời gian hoặc tốt hơn, chỉ cần cẩn thận để làm cho sản phẩm hoạt động ngay khi chúng sẵn sàng, vì vậy, tôi sẽ phải cẩn thận, tại sao không cẩn thận bằng cách này, có lẽ có thể gây sát thương ít nhất trong số 1 và 2 dù sao đi nữa. Thx
John Sonderson

3.) ổn định, có thể lặp lại và dựa trên tệp - nhược điểm là nó đòi hỏi nhiều công việc hơn để thiết lập.
Kristof tại Fooman

1

mageploy cũng có thể giải quyết vấn đề này.


Hiện tại, không ai ở mageploy đã cập nhật trang web của mình. Nó vẫn nói rằng nó chỉ dành cho Magento 1.7.0.2
Max

1

Có các công cụ cơ sở dữ liệu như cóc của Quest Software (nay là Dell) cho MySQL. Công cụ quản lý cơ sở dữ liệu này có các tính năng so sánh dữ liệu và cấu trúc mà bạn có thể sử dụng để xem các thay đổi giữa hai cơ sở dữ liệu. Chỉ cần giữ các bản sao lưu (hoặc git cam kết) của các phiên bản cơ sở dữ liệu mà bạn muốn so sánh và voila. Thậm chí còn có một trình tạo kịch bản để đưa cả hai đồng bộ hóa.


1

Chúng tôi đã giải quyết vấn đề này bằng cách tạo một DB từ xa cho các phát triển cục bộ và phân tầng để đọc / ghi. Thực sự giúp với thời gian và hiệu quả; không còn nhân bản, tải DB lên môi trường của mọi người.

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.