How Can We Help?
使用 Openupgrade 升級至 Odoo 10.0 – 實戰篇
完成 使用 Openupgrade 升級至 Odoo 10.0 – 準備篇 與 使用 Openupgrade 升級至 Odoo 10.0 – 除錯篇 後
升級前移除模組清單(建議先移除再升級,怕事後忘了移除)
Custom report filenames – 已整合在 Odoo 10.0 中
database_cleanup – 在升級時,使用此模組 purge 欄位,造成後續的問題,建議不要使用
GTS COA – 用不到,不想要升級
可繼續使用(不需理會)
stock_disable_force_availability_button
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.