使用 Openupgrade 升級至 Odoo 9.0 – 除錯篇(Hanyu)

You are here:
  • Main
  • 使用 Openupgrade 升級至 Odoo 9.0 - 除錯篇(Hanyu)
< All Topics

完成 使用 Openupgrade 升級至 Odoo 9.0 – 準備篇(Hanyu) 後,開始著手升級除錯了

資料庫升級前修正

錯誤訊息 Can’t find .pfb for face ‘Times-Roman’

依照此連結 http://stackoverflow.com/questions/28281891/cant-setfonttimes-roman-missing-the-t1-files

下載 pfb 檔案後,解壓縮至 /usr/lib/python2.7/dist-packages/reportlab/fonts/

fonts 目錄可能並不存在,需要先手動建立

wget http://www.reportlab.com/ftp/fonts/pfbfer.zip

unzip pfbfer.zip

sudo mkdir /usr/lib/python2.7/dist-packages/reportlab/fonts/

sudo mv *.pfb /usr/lib/python2.7/dist-packages/reportlab/fonts/

移除模組

移除無法正常升級的模組,部分建議先行移除,升級完畢後再重新安裝

先行移除

custom_filter_tabs:
9.0 已內建

c2c_period_yyyymm:
9.0 已取消 Period 了

osbzr_show_price:
無 9.0 版可用

webkit:
不支援 9.0 版可用

report_xls:
不支援 9.0 版可用

mis_builder
升級後會造成無法登入

mass_editing:
升級後會造成無法登入

website:
升級後會造成無法登入

account_analytic_analysis:
升級後會造成無法登入

 

需再重新安裝

Mass Editing
MIS Builder
Website

 

6.  下載新版套件

Disable force availability button
https://www.odoo.com/apps/modules/9.0/stock_disable_force_availability_button/
git clone -b 9.0 --depth 1 https://github.com/odoomrp/odoomrp-utils.git
sudo cp -rf /var/tmp/odoomrp-utils/stock_disable_force_availability_button /opt/apps_odoo9

Partner auto salesman(激安不需要)
git clone -b 9.0 --depth 1 https://github.com/OCA/account-invoicing.git
sudo cp -rf /var/tmp/partner-contact/partner_auto_salesman /opt/apps_odoo9

 

前置準備作業

檢查 Migration Log => 修正錯誤

根據經驗,升級通常不會一次就成功,尤其是有進行過客製化後,更需要重複修正,這時可以藉由 migration.log 來判斷該如何處理

檔案位置
/var/tmp/openupgrade/migration.log

Migration Log 包含了四種類型的紀錄

INFO:系統訊息(不重要)
DEBUG:進行修改的SQL語法
WARNING:一些警告,通常可以忽略
ERROR:錯誤訊息,如果跳 ERROR 之後還能執行,那就是可以忽略得 ERROR,如果會中斷 Migration 流程,必須優先解決

如果 Migration Log 最後幾行顯示的是

2016-02-26 11:34:15,528 23380 INFO Hanyu_migrated openerp.modules.loading: Modules loaded.
2016-02-26 11:34:15,531 23380 INFO Hanyu_migrated openerp.models: Computing parent left and right for table ir_ui_menu...
2016-02-26 11:34:15,720 23380 INFO Hanyu_migrated openerp.models: Computing parent left and right for table stock_location...
2016-02-26 11:34:15,738 23380 INFO Hanyu_migrated openerp.service.server: Initiating shutdown
2016-02-26 11:34:15,738 23380 INFO Hanyu_migrated openerp.service.server: Hit CTRL-C again or send a second signal to force the shutdown.

據經驗這表示已經升級完成了!

After Migration

好不容易完成升級了,接下來需要把升級完成的資料庫備份並轉移到 Odoo 9 的環境下

根據目前的經驗,剛升級完成的資料庫無法使用 Odoo 內建的 Restore 還原

必須使用 PSQL 還原後,再透過 odoo 的 –update=all 指令進行完整升級(參照 After migration

備份升級後的資料庫與產品 FileStore
Dump
pg_dump v8_migrated -U odoo -f v8_migrated.sql

Copy Image FileStore
cd /root/.local/share/Odoo/filestore
tar zcvf v9.tar.gz ./v8_migrated/
scp v9.tar.gz cewolf@192.168.1.236:~
到 Odoo 9 的 Server
Restore Filestore
cd /var/lib/odoo/filestore
tar zxvf v9.tar.gz ./
使用 DB owner 執行下列語法(此處是使用 cewolf )
/usr/bin/odoo.py --config=/etc/odoo/openerp-server.conf -d v8_migrated -u all --stop-after-init

看到了這行表示更新完成了
2016-03-02 10:30:47,525 1642 INFO Hv8 openerp.modules.loading: Modules loaded.
2016-03-02 10:30:47,528 1642 INFO Hv8 openerp.models: Computing parent left and right for table ir_ui_menu...

資料庫升級後修正

delete from res_currency where id = 210;
ALTER TABLE res_currency ADD CONSTRAINT res_currency_unique_name unique (name);
ALTER TABLE product_price_history ALTER COLUMN product_id SET NOT NULL;
ALTER TABLE account_tax ALTER COLUMN tax_group_id SET NOT NULL;
update account_move_line set date_maturity = date_created where date_maturity is null;
ALTER TABLE account_move_line ALTER COLUMN date_maturity SET NOT NULL;
update account_chart_template set currency_id = 145 where currency_id is null;
ALTER TABLE account_chart_template ALTER COLUMN currency_id SET NOT NULL;
update account_chart_template set transfer_account_id = 1;
ALTER TABLE account_chart_template ALTER COLUMN transfer_account_id SET NOT NULL;
ALTER TABLE stock_picking ALTER COLUMN location_id SET NOT NULL;
ALTER TABLE stock_picking ALTER COLUMN location_dest_id SET NOT NULL;
ALTER TABLE sale_order_line ALTER COLUMN product_id SET NOT NULL;
ALTER TABLE purchase_order_line ALTER COLUMN product_id SET NOT NULL

ERP 內部設定

1. 重新設定報錯的 View

『設定』/『用戶介面』/『檢視』

搜尋 res.partner.opt_out.search(ID 為 1194),關閉即可

3. 重新設定新建客戶預設值

升級後新建客戶會發現在『會計分頁』中,預設的『應收科目』與『應付科目』不是不見了就是錯了

原因為原先的欄位名稱修改了

需要用 Admin 登入,到『設定』/『技術』/『動作』/『使用者定義之預設值』,搜尋 property_account 後修改

應收科目:property_account_receivable => property_account_receivable_id

應付科目:property_account_payable => property_account_payable_id

可以用 SQL 來更新

update ir_values set name = 'property_account_receivable_id' where name = 'property_account_receivable';
update ir_values set name = 'property_account_payable_id' where name = 'property_account_payable'
4. 補完會計設定

Odoo 9.0 在會計模組作了相當大程度的修改

1. 可先至會計模組點右上角進度條補齊設定

3. 登記客戶付款時沒有付款方式

要去『會計』/『設定』/『會計』/『帳簿』

點進去後,到『進階設定』個別設定

可成為收款方式:勾選『Debit Methods』

可成為付款方式:勾選『付款方法』

注意!不要設定『貨幣』選項,除非是外幣帳戶

4. 設定 Inter-Banks Transfer Account

Odoo 9 的設定多了這個必填的設定,主要是用來處理流動資金帳戶間的金流

到『會計』/『設定』/『設定』=> 『銀行和現金』/『設定』/『Inter-Bank Transfer Account』新增

名稱:Liquidity Transfers

代碼:隨意(如 6500)

類型:Current Assets

允許調節:勾選

6. 補齊產品分類設定

升級後,產品內的『成本計算方式』 移至『產品分類』下

產品分類內多了『存貨估價』,原先設定好的『入庫科目』『庫存輸出科目』被清空

所以需重新設定,到『銷售』/『設定』/『產品』/『產品分類』

『入庫科目』:6100

『出庫科目』:6200

『成本計算方式』:Real Price

『存貨估價』:Perpetual (automated)

可使用 Mass Editing 一次大量設定

Model:product.category

Field 1:property_stock_account_input_categ_id

Field 2:property_stock_account_output_categ_id

Field 3:property_cost_method

Field 4:property_valuation

7. 使用 Database Cleanup

參考資料:

After migration

Automated migration script

Db migrated to odoo 8, update stuck at computing ir_ui_menu parent_left and parent_right

Table of Contents