Nâng cấp cơ sở dữ liệu tùy chỉnh¶
Việc nâng cấp lên phiên bản mới của SoOn có thể gặp khó khăn, đặc biệt nếu cơ sở dữ liệu bạn làm việc có chứa các mô-đun tùy chỉnh. Mục đích của trang này là giải thích quy trình kỹ thuật nâng cấp cơ sở dữ liệu bằng các mô-đun tùy chỉnh. Tham khảo Tài liệu nâng cấp để biết hướng dẫn về cách nâng cấp cơ sở dữ liệu mà không cần các mô-đun tùy chỉnh.
Chúng tôi xem xét một mô-đun tùy chỉnh, bất kỳ mô-đun nào mở rộng mã tiêu chuẩn của SoOn và mô-đun đó không được xây dựng bằng ứng dụng Studio. Trước khi nâng cấp một mô-đun như vậy hoặc trước khi yêu cầu nâng cấp, hãy xem Thỏa thuận cấp độ dịch vụ (SLA) để đảm bảo ai chịu trách nhiệm về nó.
Trong khi thực hiện những gì chúng tôi gọi là nâng cấp tùy chỉnh cơ sở dữ liệu của bạn, hãy ghi nhớ các mục tiêu của việc nâng cấp:
Luôn được hỗ trợ
Nhận các tính năng mới nhất
Tận hưởng sự cải thiện hiệu suất
Giảm nợ kỹ thuật
Hưởng lợi từ những cải tiến về bảo mật
Với mỗi phiên bản mới của SoOn, các thay đổi đều được đưa ra. Những thay đổi này có thể tác động đến các mô-đun đã được phát triển tùy chỉnh. Đây là lý do tại sao việc nâng cấp cơ sở dữ liệu chứa các mô-đun tùy chỉnh cần có các bước bổ sung để nâng cấp mã nguồn.
Đây là các bước cần thực hiện để nâng cấp cơ sở dữ liệu tùy chỉnh:
Bước 1: Dừng sự phát triển¶
Bắt đầu nâng cấp đòi hỏi sự cam kết và nguồn lực phát triển. Nếu các phát triển tiếp tục được thực hiện cùng lúc, các tính năng đó sẽ cần được nâng cấp lại và kiểm tra mỗi khi bạn thay đổi chúng. Đây là lý do tại sao chúng tôi khuyên bạn nên đóng băng hoàn toàn cơ sở mã khi bắt đầu quá trình nâng cấp. Không cần phải nói, việc sửa lỗi được miễn trừ khỏi khuyến nghị này.
Khi bạn đã ngừng phát triển, cách tốt nhất là đánh giá những phát triển đã thực hiện và so sánh chúng với các tính năng được giới thiệu giữa phiên bản hiện tại và phiên bản bạn đang nhắm mục tiêu. Thử thách sự phát triển càng nhiều càng tốt và tìm ra cách giải quyết hữu ích. Loại bỏ sự dư thừa giữa quá trình phát triển của bạn và phiên bản tiêu chuẩn của SoOn sẽ giúp quá trình nâng cấp được dễ dàng hơn và giảm nợ kỹ thuật.
Ghi chú
Bạn có thể tìm thấy thông tin về những thay đổi giữa các phiên bản trong Ghi chú phát hành.
Bước 2: Yêu cầu cơ sở dữ liệu được nâng cấp¶
Khi quá trình phát triển các mô-đun tùy chỉnh đã dừng lại và các tính năng được triển khai gặp khó khăn trong việc loại bỏ mã dư thừa và không cần thiết, bước tiếp theo là yêu cầu nâng cấp cơ sở dữ liệu thử nghiệm. Để làm như vậy, hãy làm theo các bước được đề cập trong Lấy cơ sở dữ liệu thử nghiệm được nâng cấp, tùy thuộc vào loại lưu trữ cơ sở dữ liệu của bạn.
Mục đích của giai đoạn này không phải là bắt đầu làm việc với các mô-đun tùy chỉnh trong cơ sở dữ liệu đã nâng cấp mà là để đảm bảo quá trình nâng cấp tiêu chuẩn hoạt động trơn tru và cơ sở dữ liệu thử nghiệm được phân phối đúng cách. Nếu không phải như vậy và yêu cầu nâng cấp không thành công, hãy yêu cầu hỗ trợ của SoOn thông qua trang hỗ trợ bằng cách chọn tùy chọn liên quan đến thử nghiệm nâng cấp.
Bước 3: Cơ sở dữ liệu trống¶
Trước khi làm việc trên cơ sở dữ liệu thử nghiệm đã nâng cấp, chúng tôi khuyên bạn nên thực hiện các phát triển tùy chỉnh hoạt động trên cơ sở dữ liệu trống trong phiên bản nâng cấp được nhắm mục tiêu của bạn. Điều này đảm bảo rằng tùy chỉnh tương thích với phiên bản mới của SoOn, cho phép phân tích cách nó hoạt động và tương tác với các tính năng mới, đồng thời đảm bảo rằng chúng sẽ không gây ra bất kỳ vấn đề nào khi nâng cấp cơ sở dữ liệu.
Việc làm cho các mô-đun tùy chỉnh hoạt động trong cơ sở dữ liệu trống cũng giúp tránh các thay đổi và cấu hình sai có thể có trong cơ sở dữ liệu sản xuất (như tùy chỉnh studio, trang web tùy chỉnh, mẫu email hoặc bản dịch). Về bản chất, chúng không liên quan đến các mô-đun tùy chỉnh và có thể gây ra các vấn đề không mong muốn trong giai đoạn này của quá trình nâng cấp.
Để làm cho các mô-đun tùy chỉnh hoạt động trên cơ sở dữ liệu trống, chúng tôi khuyên bạn nên làm theo các bước sau:
Làm cho các mô-đun tùy chỉnh có thể cài đặt được¶
Bước đầu tiên là làm cho các mô-đun tùy chỉnh có thể cài đặt được trong phiên bản SoOn mới. Điều này có nghĩa là, hãy bắt đầu bằng việc đảm bảo không có dấu vết hoặc cảnh báo nào trong quá trình cài đặt. Để làm điều này, hãy cài đặt từng mô-đun tùy chỉnh trong cơ sở dữ liệu trống của phiên bản SoOn mới và khắc phục các dấu vết và cảnh báo phát sinh từ đó.
Quá trình này sẽ giúp phát hiện các vấn đề trong quá trình cài đặt các mô-đun. Ví dụ:
Phụ thuộc mô-đun không hợp lệ.
Thay đổi cú pháp: khai báo nội dung, cập nhật OWL, attrs.
Tham chiếu đến các trường, mô hình, chế độ xem tiêu chuẩn không còn tồn tại hoặc được đổi tên.
Xpath đã di chuyển hoặc bị xóa khỏi chế độ xem.
Các phương thức được đổi tên hoặc loại bỏ.
...
Kiểm tra và sửa lỗi¶
Khi không còn dấu vết quay lại khi cài đặt các mô-đun, bước tiếp theo là kiểm tra chúng. Ngay cả khi các mô-đun tùy chỉnh có thể cài đặt được trên cơ sở dữ liệu trống, điều này không đảm bảo rằng không có lỗi trong quá trình thực thi chúng. Vì lý do này, chúng tôi khuyến khích kiểm tra kỹ lưỡng tất cả các tùy chỉnh để đảm bảo mọi thứ đều hoạt động như mong đợi.
Quá trình này sẽ giúp phát hiện thêm các vấn đề chưa được xác định trong quá trình cài đặt mô-đun và chỉ có thể được phát hiện trong thời gian chạy. Ví dụ: các cuộc gọi không được dùng nữa đến các hàm python hoặc OWL tiêu chuẩn, các tham chiếu không tồn tại đến các trường tiêu chuẩn, v.v.
Chúng tôi khuyên bạn nên kiểm tra tất cả các tùy chỉnh, đặc biệt là các yếu tố sau:
Giao diện
Mẫu thư điện tử
Báo cáo
Hành động của máy chủ và hành động tự động
Những thay đổi trong quy trình làm việc tiêu chuẩn
Trường tính toán
Chúng tôi cũng khuyến khích viết các bài kiểm tra tự động để tiết kiệm thời gian trong quá trình lặp lại kiểm tra, tăng phạm vi kiểm tra và đảm bảo rằng các thay đổi và bản sửa lỗi được đưa ra không phá vỡ các quy trình hiện có. Nếu có các thử nghiệm đã được triển khai trong quá trình tùy chỉnh, hãy đảm bảo chúng được nâng cấp lên phiên bản SoOn mới và chạy thành công, khắc phục các sự cố có thể tồn tại.
Làm sạch mã¶
Ở giai đoạn này của quá trình nâng cấp, chúng tôi cũng khuyên bạn nên làm sạch mã càng nhiều càng tốt. Điêu nay bao gôm:
Loại bỏ mã dư thừa và không cần thiết.
Xóa các tính năng hiện là một phần của tiêu chuẩn SoOn, như được mô tả trong Bước 1: Dừng sự phát triển.
Làm sạch mã nhận xét nếu không cần thiết nữa.
Cấu trúc lại mã (chức năng, trường, dạng xem, báo cáo, v.v.) nếu cần.
Kiểm tra tiêu chuẩn¶
Sau khi hoàn tất các bước trước đó, chúng tôi khuyên bạn nên đảm bảo tất cả các bài kiểm tra tiêu chuẩn liên quan đến phần phụ thuộc của mô-đun tùy chỉnh đều vượt qua. Các thử nghiệm tiêu chuẩn đảm bảo xác thực logic mã và ngăn ngừa hỏng dữ liệu. Chúng sẽ giúp bạn xác định lỗi hoặc hành vi không mong muốn trước khi bạn làm việc trên cơ sở dữ liệu của mình.
Trong trường hợp có bài kiểm tra tiêu chuẩn không đạt, chúng tôi đề nghị phân tích lý do thất bại:
Việc tùy chỉnh thay đổi quy trình làm việc tiêu chuẩn: Điều chỉnh bài kiểm tra tiêu chuẩn cho phù hợp với quy trình làm việc của bạn.
Việc tùy chỉnh không tính đến một luồng đặc biệt: Điều chỉnh tùy chỉnh của bạn để đảm bảo nó hoạt động cho tất cả các quy trình công việc tiêu chuẩn.
Bước 4: Nâng cấp cơ sở dữ liệu¶
Khi các mô-đun tùy chỉnh có thể cài đặt và hoạt động bình thường trong cơ sở dữ liệu trống, đã đến lúc làm cho chúng hoạt động trên cơ sở dữ liệu upgraded.
Để đảm bảo mã tùy chỉnh hoạt động hoàn hảo trong phiên bản mới, hãy làm theo các bước sau:
upgrade_custom/upgrade_database/migrate_data
upgrade_custom/upgrade_database/test_custom
Di chuyển dữ liệu¶
During the upgrade of the custom modules, you might have to use upgrade scripts to reflect changes from the source code to their corresponding data. Together with the upgrade scripts, you can also make use of the Nâng cấp tiện ích and its helper functions.
Bất kỳ dữ liệu kỹ thuật nào được đổi tên trong quá trình nâng cấp mã tùy chỉnh (kiểu máy, trường, mã định danh bên ngoài) phải được đổi tên bằng cách sử dụng tập lệnh nâng cấp để tránh mất dữ liệu trong quá trình nâng cấp mô-đun. Xem thêm:
rename_field()
,rename_model()
,rename_xmlid()
.Dữ liệu từ các mô hình tiêu chuẩn bị xóa khỏi mã nguồn của phiên bản SoOn mới hơn và khỏi cơ sở dữ liệu trong quá trình nâng cấp tiêu chuẩn có thể cần được khôi phục từ bảng mô hình cũ nếu nó vẫn còn.
Example
Các trường tùy chỉnh cho mô hình
sale.subscription
không được tự động di chuyển từ SoOn 15 sang SoOn 16 (khi mô hình được hợp nhất vàosale.order
). Trong trường hợp này, một truy vấn SQL có thể được thực thi trên tập lệnh nâng cấp để di chuyển dữ liệu từ bảng này sang bảng khác. Hãy lưu ý rằng tất cả các cột/trường phải tồn tại sẵn, vì vậy hãy cân nhắc thực hiện việc này trong tập lệnhpost-
(Xem Các giai đoạn của Nâng cấp Script).def migrate(cr, version): cr.execute( """ UPDATE sale_order so SET custom_field = ss.custom_field FROM sale_subscription ss WHERE ss.new_sale_order_id = so.id """ )
Check the documentation for more information on Nâng cấp Script.
Tập lệnh nâng cấp cũng có thể được sử dụng để:
Giảm bớt thời gian xử lý nâng cấp. Ví dụ: để lưu trữ giá trị của các trường được tính toán được lưu trữ trên các mô hình có số lượng bản ghi quá mức bằng cách sử dụng truy vấn SQL.
Tính toán lại các trường trong trường hợp việc tính toán giá trị của chúng đã thay đổi. Xem thêm
recompute_fields()
.Gỡ cài đặt các mô-đun tùy chỉnh không mong muốn. Xem thêm
remove_module()
.Sửa dữ liệu bị lỗi hoặc cấu hình sai.
Chạy và thử nghiệm các tập lệnh nâng cấp¶
Vì việc cài đặt các mô-đun tùy chỉnh chứa tệp Python không được phép trên cơ sở dữ liệu SoOn Online nên không thể chạy tập lệnh nâng cấp trên nền tảng này.
Như đã giải thích trên tab SoOn.sh
của Lấy cơ sở dữ liệu thử nghiệm được nâng cấp, SoOn.sh được tích hợp với nền tảng nâng cấp.
Sau khi nâng cấp nhánh dàn ở chế độ "Cập nhật trên cam kết", mỗi khi một cam kết được đẩy lên nhánh, bản sao lưu đã nâng cấp sẽ được khôi phục và tất cả các mô-đun tùy chỉnh sẽ được cập nhật. Bản cập nhật này bao gồm việc thực thi các tập lệnh nâng cấp.
Khi nâng cấp cơ sở dữ liệu sản xuất, việc thực thi các tập lệnh nâng cấp cũng là một phần của quá trình cập nhật các mô-đun tùy chỉnh do nền tảng thực hiện khi cơ sở dữ liệu nâng cấp được khôi phục.
Sau khi bạn nhận được kết xuất nâng cấp của cơ sở dữ liệu từ Nâng cấp nền tảng, hãy triển khai cơ sở dữ liệu và cập nhật tất cả các mô-đun tùy chỉnh bằng cách gọi lệnh odoo-bin trong shell. Để cập nhật các mô-đun tùy chỉnh, hãy sử dụng tùy chọn: -u <modules>, --update <modules>
.
Quan trọng
Như đã đề cập trong Tài liệu CLI, lệnh dùng để gọi CLI tùy thuộc vào cách bạn cài đặt SoOn.
Kiểm tra các mô-đun tùy chỉnh¶
Để đảm bảo các mô-đun tùy chỉnh hoạt động bình thường với dữ liệu của bạn trong cơ sở dữ liệu đã nâng cấp, chúng cũng cần được kiểm tra. Điều này giúp đảm bảo cả dữ liệu tiêu chuẩn và tùy chỉnh được lưu trữ trong cơ sở dữ liệu đều nhất quán và không có gì bị mất trong quá trình nâng cấp.
Những điều cần chú ý:
Chế độ xem không hoạt động: Trong quá trình nâng cấp, nếu một chế độ xem gây ra sự cố do nội dung của nó thì chế độ xem đó sẽ bị tắt. Bạn có thể tìm thấy thông tin về các chế độ xem bị vô hiệu hóa trên Báo cáo nâng cấp. Chế độ xem này cần được kích hoạt lại (hoặc xóa nếu không còn hữu ích). Để đạt được điều này, chúng tôi khuyên bạn nên sử dụng tập lệnh nâng cấp.
Dữ liệu mô-đun chưa được cập nhật: Các bản ghi tùy chỉnh có cờ
noupdate
không được cập nhật khi nâng cấp mô-đun trong cơ sở dữ liệu mới. Đối với dữ liệu tùy chỉnh cần được cập nhật do những thay đổi trong phiên bản mới, chúng tôi khuyên bạn nên sử dụng tập lệnh nâng cấp để thực hiện việc đó. Xem thêm:update_record_from_xml()
.
Bước 5: Kiểm tra và diễn tập¶
Khi các mô-đun tùy chỉnh hoạt động bình thường trong cơ sở dữ liệu đã nâng cấp, điều quan trọng là phải thực hiện một vòng kiểm tra khác để đánh giá khả năng sử dụng cơ sở dữ liệu và phát hiện bất kỳ vấn đề nào có thể không được chú ý trong các lần kiểm tra trước đó. Để biết thêm thông tin về việc kiểm tra cơ sở dữ liệu đã nâng cấp, hãy kiểm tra Kiểm tra phiên bản mới của cơ sở dữ liệu.
Như đã đề cập trong Nâng cấp cơ sở dữ liệu sản xuất, cả tập lệnh nâng cấp tiêu chuẩn và cơ sở dữ liệu của bạn đều không ngừng phát triển. Do đó, chúng tôi khuyên bạn nên thường xuyên yêu cầu cơ sở dữ liệu thử nghiệm được nâng cấp mới và đảm bảo rằng quá trình nâng cấp vẫn thành công.
Ngoài ra, hãy diễn tập đầy đủ quy trình nâng cấp một ngày trước khi nâng cấp cơ sở dữ liệu sản xuất để tránh hành vi không mong muốn trong quá trình nâng cấp và phát hiện bất kỳ sự cố nào có thể xảy ra với dữ liệu đã di chuyển.
Bước 6: Nâng cấp sản xuất¶
Sau khi bạn tự tin về việc nâng cấp cơ sở dữ liệu sản xuất của mình, hãy làm theo quy trình được mô tả trên Nâng cấp cơ sở dữ liệu sản xuất, tùy thuộc vào loại lưu trữ cơ sở dữ liệu của bạn.