Odoo安裝/更新模塊原理
Odoo每次安裝/更新模塊時,會進行以下幾步處理:
- 1.判斷是否需要創建表,如果需要創建且表不存在,則進行表的創建(不進行欄位的創建);
- 2.獲取該表中已經存在的欄位;
- 3.獲取odoo模型中的所有欄位;
- 4.遍歷欄位,對需要存盤的欄位,進行欄位的更新/創建,欄位屬性的更新;
- 5.如果是compute欄位且store=True,則將compute方法加入任務佇列,進行歷史資料的計算存盤;
因為呼叫的是Odoo的ORM,會導致計算存盤時間過長;
解決方案
Odoo安裝/更新模塊時間過長解決方案
方案1
原理:不使用compute欄位,每次保存某關鍵欄位時呼叫方法
- 1.不使用compute型別而改為常規型別;
- 2.歷史資料在安裝/更新時使用sql處理;
- 3.新記錄使用depends/contrains方式在保存資料時呼叫函式解決;
方案2
原理:預先使用sql創建欄位在安裝/更新時會跳過compute方法
- 1.使用compute欄位;
- 2.在安裝/升級模塊前先使用sql給表新增欄位及添加值;
- 3.安裝/升級模塊后走compute方法;
方案3
原理:安裝/更新模塊跳過python方法,使用sql計算值
- 1.使用compute欄位;
- 2.在安裝/更新模塊時,不觸發方法;新記錄觸發;
- 3.安裝/更新后,使用sql處理歷史資料;
具體原理請結合 odoo安裝/更新模塊原理 一節理解,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/539020.html
標籤:其他
上一篇:序章-準備作業
下一篇:前端和后端字串比較的區別
