odoo公升級模組後字段為預設值問題修復

2021-09-24 06:49:55 字數 1143 閱讀 1584

公升級了自己二開的發票模組後,出現原有發票資料的數量為0的情況

本地恢復線上公升級前的資料庫,並git切換到公升級前的版本,模擬線上公升級前的環境,開始公升級

由於是從master合併dev分支,commit數有七八個,二分法通過git checkout切換版本公升級,確定出現問題的commit

第一次二分法公升級後出現問題,重新初始化模擬環境繼續二分法,結果沒找到問題,一直checkout到最新**都沒有出現。查詢異常commit失敗

重新初始化公升級環境,直接公升級到最新**,檢查log,搜尋關鍵字,發現

odoo.schema: table 『account_invoice_line'』: column 『quantity』: dropped constraint not null

odoo.schema: table 『account_invoice_line': renamed column 『quantity』 to 『'quantity_moved1'

odoo.schema: table 『account_invoice_line': added column 'quantity' of type int4

該日誌,確定問題為資料庫字段發生變化,導致字段資料變為新字段預設值0

查詢該字段的**,發現是重構了原始碼的字段,原始碼是float型別,重構成了integer型別,並新增注釋為中文注釋。猜測當時的情況應該只是想修改為中文注釋…

由於字段型別前後不一致,導致公升級過程中,odoo重新命名了舊字段,建立新字段。

另外存在乙個問題,

發現在二開**中,該字段是在2018-10-10提交,專案公升級前的**版本是2018-11-29現在時間是2019-04-23,講道理如果存在這個問題,應該之前每次公升級就會出現了,並且一開始的通過checkout公升級,也有時出現有時沒有,很奇怪。odoo迷之問題。

odoo配置字段預設值

odoo裡有專門提供給模型配置預設值的方式 1 首先,需要給模型建立乙個設定模型與對應的介面 2 建立模型 class classname models.transientmodel name config.settings 自己的模型名 inherit res.config.settings 這裡...

Mysql 修改字段預設值

mysql 5.7.13 問題描述 建表的時候,users info表的role id欄位沒有預設值,後期發現註冊的時候,需要提供給使用者乙個預設角色,也就是給role id欄位乙個預設值。當前users info表的role id 在建立表的時候,沒有設定預設值,資料庫自動設定為空。原先建表語句 ...

SQL修改字段預設值方法

declare tablename varchar 30 declare fieldname varchar 50 declare sql varchar 300 set tablename dncdeta1 set fieldname description set sql select sql ...