使用 Openupgrade 升級至 Odoo 10.0 – 實戰篇

You are here:
< All Topics

完成 使用 Openupgrade 升級至 Odoo 10.0 – 準備篇 與 使用 Openupgrade 升級至 Odoo 10.0 – 除錯篇

升級前移除模組清單(建議先移除再升級,怕事後忘了移除)

Custom report filenames – 已整合在 Odoo 10.0 中

database_cleanup – 在升級時,使用此模組 purge 欄位,造成後續的問題,建議不要使用

GTS COA – 用不到,不想要升級

可繼續使用(不需理會)

mass_editing

mis_builder

web_export_view

stock_disable_force_availability_button

purchase_discount

stock_removal_location_priority – 目前使用 Pull Request 的版本測試可正常運作,但需要重新設定

執行升級語法
cd /var/tmp/openupgrade/10.0/server && python migrate.py --config=/opt/openerp-server.conf --database=v10 --run-migrations=10.0
升級後處理

1. ALTER TABLE “mrp_production” ALTER COLUMN “picking_type_id” SET NOT NULL

使用 SQL 修正工單

update mrp_production set picking_type_id = 88

再更新資料表

ALTER TABLE mrp_production ALTER COLUMN picking_type_id SET NOT NULL

2. bad query: ALTER TABLE “mrp_subproduct” ALTER COLUMN “product_uom_id” SET NOT NULL

product_uom_id 也是 Odoo 10 新增的欄位,在我們的應用下可直接用 Unit(s) 來取代

update mrp_subproduct set product_uom_id = 1 where product_uom_id is NULL

再更新資料表

ALTER TABLE "mrp_subproduct" ALTER COLUMN "product_uom_id" SET NOT NULL

3. 建立好的篩選器不見了

在升級的過程中有些 filter 被 inactive 了,只需重新啟用即可

update ir_filters set active = 'TRUE' where active is false

4. 設定 Warehouse 預設的 Manufacturing Picking Type

此欄位也是 10.0 新增的,僅能使用 SQL 修改

update stock_warehouse set manu_type_id = 88 where id = 1

5. 打訂單時,產品跳出的售價錯誤,預設抓到的幣別與價目表錯誤

Odoo 10 在『客戶』中多了一個『銷售價目表』,但這個欄位並不存在於資料庫之中

如果沒有針對客戶特別設定,將會使用全部價目表中第一順位的價目表作預設值

修改方式為『啟用開發者模式』/『銷售』/『Pricelists』

拉左方的箭頭調整成想要的順序即可

附帶一提,非預設價目表的值儲存在 Table ir_property,可用下列語法查詢

select * from ir_property where name = 'property_product_pricelist'
修正報表匯出名稱

Ball 經銷報價單 => ‘經銷報價單_’+(object.name)+’.pdf’
帳篷報價單-不顯示折扣 => (object.partner_id.name)+’_’+(object.name)+’.pdf’
帳篷報價單-顯示折扣 => ‘經銷報價單_’+(object.name)+’.pdf’
帳篷報價單-顯示折扣與內容 => ‘經銷報價單_’+(object.name)+’.pdf’
揀貨單明細 => ‘揀_’+(object.name)+’.pdf’
訂購單 => ‘訂購單_’+(object.name)+’.pdf’
銷貨單 => ‘銷貨單_’+(object.name)+’.pdf’
採購單 => (object.name)+’.pdf’

移除升級過後的 Table 與 Column

有些 Table 或 Column 在升級中會使用到,但升級過後就用不到了

Openupgrade 會將他們前面加上 openupgrade_legacy_10_0_

完成升級並且確認穩定之後再進入資料庫手動刪除吧!

如果遇到如下方無法刪除的情況,請用 CASCADE 讓 PostgreSQL 自行清除關連性即可

ERROR:  cannot drop table account_account column openupgrade_legacy_9_0_type because other objects depend on it
DETAIL:  view report_account_receivable depends on table account_account column openupgrade_legacy_9_0_type
view account_treasury_report depends on table account_account column openupgrade_legacy_9_0_type
view account_entries_report depends on table account_account column openupgrade_legacy_9_0_type
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
Previous 使用 Openupgrade 升級 Odoo 9.0 除錯篇 (未完成)
Next 使用 Openupgrade 升級至 Odoo 10.0 – 準備篇
Table of Contents