2017-03-29 23 views
9

Tôi có các sửa đổi mở rộng để thực hiện trên trang web prestashop 1.6.Kết hợp cơ sở dữ liệu và cơ sở dữ liệu prestashop trực tiếp

Tôi đã tạo bản sao cục bộ và đang theo dõi các thay đổi của hệ thống tệp trong git.

Tuy nhiên rất nhiều thay đổi trong prestashop được lưu trữ trong cơ sở dữ liệu, đặc biệt là trong trường hợp của tôi:

  • Cài đặt và cấu hình một module mới
  • Gỡ cài đặt một module
  • Thêm loại cửa hàng và thay đổi hệ thống phân cấp
  • Thay đổi vị trí của mô-đun
  • và thường sửa đổi mô-đun nào xuất hiện trong móc.

Trong quá trình phát triển, trang web trực tiếp đã nhận được nhiều đơn đặt hàng, khách hàng, người đăng ký mới, do đó cơ sở dữ liệu không đồng bộ.

Tôi đã giải quyết các vấn đề tương tự trong các khung công tác khác bằng cách đổ và nhập các bảng cụ thể trong db hoặc sử dụng các khung được xây dựng trong chức năng di chuyển, nhưng tôi không thể tìm thấy bất kỳ lời khuyên nào dành riêng cho prestashop.

Cách xử lý này được xử lý như thế nào?

Xem xét rằng trang web dev có thể đã trải qua nhiều thay đổi đa dạng hơn so với quảng cáo trực tiếp, tôi tự hỏi liệu sẽ dễ dàng sao chép các đơn đặt hàng mới hơn v.v ... sau đó ghi đè toàn bộ nội dung?

Trả lời

3

Tôi không nghĩ rằng có thể đạt được điều này trong PrestaShop. Bạn phải có kiến ​​thức rộng lớn về PrestaShop DB (tức là có kiến ​​thức về từng bảng và các cột trong đó) để hợp nhất các cơ sở dữ liệu.

Bạn cũng không bao giờ nên làm điều đó.

Tôi đề nghị bạn thực hiện đồng bộ hóa theo cách thủ công vì đây là một nhiệm vụ rất nguy hiểm và bạn có thể mất tất cả dữ liệu trong cửa hàng trực tiếp, điều này sẽ càng đau đớn hơn.

+0

Urgh, không phải những gì tôi muốn nghe, nhưng cảm ơn anyway. Tôi sẽ đặt cửa hàng vào chế độ bảo trì và sao lưu các tệp và DB trước khi cố gắng hợp nhất, nhưng làm tất cả điều này theo cách thủ công thông qua backoffice sẽ có nghĩa là có cửa hàng ngoại tuyến trong một số giờ, sẽ mất nhiều chi phí doanh số bán hàng – Steve

2

Đối với các mô-đun, thông tin được lưu trữ trong tất cả các bảng bắt đầu bằng modules. Giá trị cấu hình mô-đun được lưu trữ trong configurationconfiguration_lang. Hãy chắc chắn rằng bạn cũng sao chép bảng mô-đun tùy chỉnh của khóa học.

Thông tin danh mục cửa hàng nằm trong tất cả các bảng bắt đầu bằng category.

Thông tin về móc mô-đun nằm trong tất cả các bảng bắt đầu bằng hook. Tuy nhiên, như Raghubendra Singh nói trong câu trả lời của mình, đây là một nhiệm vụ rất nguy hiểm, nếu bạn thực sự muốn làm điều đó, tôi đề nghị bạn tạo một bản sao cục bộ khác của trang web đang hoạt động và trước tiên hãy thử quá trình giữa hai bản sao địa phương và đảm bảo mọi thứ hoạt động chính xác.

+0

Ok, thats hứa hẹn, tôi có thể có thể viết một kịch bản bash với một số thử nghiệm địa phương carefull. Nó có thể sẽ mất nhiều thời gian phát triển hơn so với chỉ thay đổi trong backoffice, nhưng giảm thời gian chết có thể bao gồm rằng, ngay cả khi không phải trong trường hợp đầu tiên, nó cuối cùng phải trả tiền cho tự của nó. Và không phải làm việc lúc 3 giờ sáng là một điểm cộng! – Steve

0

Tôi có thể cho bạn biết kinh nghiệm của tôi về việc cập nhật Prestashop và sử dụng nó hàng ngày.

Đối với công việc hàng ngày (sửa lỗi hoặc thêm tính năng), tôi thực hiện các thay đổi trong DB trực tiếp trong phpmyadmin. Tôi kiểm tra tất cả mọi thứ trong một isntallation gương, sao chép các thay đổi cho các trang web sản xuất và áp dụng các thay đổi mysql.

Chúng tôi chỉ quét 2-3 phiên bản chính mới của trang web (2 năm một lần, ít nhiều) và chờ phiên bản ổn định của Prestashop, thậm chí 1,7 giờ có một số lỗi lớn (Bản dịch là một trong số đó) không chắc là 100% đã được sửa trong 1.7.1). Điều cuối cùng, đã diễn ra khá tốt, chúng tôi đã thay đổi chủ đề theo nhu cầu của mình, áp dụng một loạt các tính năng mới cho khách hàng của chúng tôi, v.v ... Khi đã đến lúc khởi chạy, tôi đã phân tích sự khác biệt trong các bảng có liên quan và sao chép dữ liệu từ db cũ sang giá trị mới, với các trường được thêm và thay đổi mặc định, v.v ... bằng cách sử dụng truy cập ssh vì chúng đều nằm trên cùng một máy chủ.

Btw, các bảng cũ chúng tôi cần có liên quan đến địa chỉ, nhà cung cấp dịch vụ, giỏ hàng, danh mục, khách hàng, phân phối, tính năng, nhóm, hình ảnh (nhưng không phải image_type), nhà sản xuất, đơn đặt hàng, sản phẩm, phạm vi, giá_đầu , thuế, tax_rule, danh sách yêu thích, khu vực, quốc gia, tiểu bang, nhân viên, tiểu sử và những người khác được các mô-đun của chúng tôi sử dụng. Những người khác như mô-đun, cấu hình, móc, vv, không quan trọng bởi vì nó là một chủ đề hoàn toàn mới.

Tôi luôn nghĩ đến việc làm một cái gì đó có thể đồng bộ hóa db của phiên bản dev và phiên bản trực tiếp. Nhưng vẫn chưa thực hiện do thực tế là chúng tôi không làm điều đó nhiều thay đổi lớn, và những thay đổi nhỏ, chúng tôi cố gắng giữ những thay đổi trong một tập tin cho đến khi chúng tôi áp dụng nó (không phải là chuyên nghiệp nhất, tôi biết). Và đôi khi, về những thay đổi lớn trong phiên bản này, có thể có những cách thức mới của Prestashop đang làm việc. Điều cuối cùng tôi nhớ là slug truy cập trong 1.6.something, không phải trong 1.5, và sau khi mọi thứ đã xong, tôi có thể đăng nhập vào văn phòng, nhưng các công nhân khác không thể, vì nó đã thay đổi cách truy cập được kiểm soát, và vì tôi là superadmin, tôi không bị ảnh hưởng bởi nó. Một điều nữa là không làm ngay bây giờ, Prestashop đang bắt đầu sử dụng Symfony, và tôi nghĩ sẽ cố gắng sử dụng nó nhiều hơn trong tương lai, tác động đến việc mọi thứ sẽ được thực hiện như thế nào trong tương lai. Vì vậy, một giải pháp bây giờ không thể làm việc trong tương lai.

Chúng tôi cũng có thể sử dụng các tính năng nâng cấp trong mô-đun. Không bao giờ thử nó, nhưng nó có thể được sử dụng để áp dụng nâng cấp cho DB và những người khác một cách tự động. Có vẻ đầy hứa hẹn, nhưng không biết liệu nó có hoạt động với một cú đẩy hay chỉ khi nâng cấp mô-đun. Một trong những ngày này tôi sẽ thử nghiệm điều này.

Đây không phải là một phản ứng với giải pháp, nhưng tôi quan tâm đến một giải pháp và làm việc trên một giải pháp nếu không có. Nó sẽ là thú vị để làm một cú đẩy, và không phải thay đổi mọi thứ trong db "bằng tay".

+0

Trừ khi mô-đun trên Prestashop Addons, bản nâng cấp sẽ chạy ngay khi bạn tải trang danh sách mô-đun. Bạn cũng cần sửa đổi tất cả các mã/tệp cài đặt sql gốc để phản ánh các thay đổi vì các kịch bản nâng cấp sẽ chỉ chạy một lần. nếu bạn cài đặt lại mô-đun, các tập lệnh nâng cấp sẽ không chạy. – TheDrot

+0

Điều đó rất hữu ích. Có lẽ đẩy/kéo có thể kích hoạt kiểm tra nâng cấp trên mỗi mô-đun. Khi cài đặt lại, việc nâng cấp sẽ xảy ra. Và khi cài đặt, chúng tôi cần thay đổi mã để tạo bảng để phản chiếu cấu trúc mới nhất. – sadlyblue

+0

đó chỉ là lý thuyết – Wolfack

Các vấn đề liên quan