2015-10-26 108 views
0

我正在嘗試將odoo安裝從8.0升級到9.0。我到目前爲止已經做的是以下幾點:從生產系統 如何將odoo 8升級到odoo 9數據庫?

  • 在我目前的系統安裝在備份數據庫作爲測試

    • 備份odoo數據庫
    • 複製odoo文件夾中的文件夾在我的系統
    • 檢查,如果一切正常。有用!
    • 更新到最新的v8.0版本,仍然有效
    • 做了git checkout 9.0後跟git pull
    • 開始odoo 9.0命令./openerp-server -d testDB -u all

    此命令會切斷與下面的錯誤和不更新我的數據庫:

    LINE 1: select model, transient from ir_model where state='manual' 
            ^
    , in query select model, transient from ir_model where state=%s 
    2015-10-26 00:37:29,823 4501 CRITICAL testDB openerp.service.server: 
    Failed to initialize database `testDB`. 
    Traceback (most recent call last): 
        File "/opt/odoo/openerp/service/server.py", line 885, in preload_registries 
        registry = RegistryManager.new(dbname, update_module=update_module) 
    File "/opt/odoo/openerp/modules/registry.py", line 385, in new 
    openerp.modules.load_modules(registry._db, force_demo, status, update_module) 
    File "/opt/odoo/openerp/modules/loading.py", line 279, in load_modules 
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report) 
    File "/opt/odoo/openerp/modules/loading.py", line 136, in load_module_graph 
    registry.setup_models(cr, partial=True) 
    File "/opt/odoo/openerp/modules/registry.py", line 185, in setup_models 
    cr.execute('select model, transient from ir_model where state=%s', ('manual',)) 
    File "/opt/odoo/openerp/sql_db.py", line 139, in wrapper 
        return f(self, *args, **kwargs) 
    File "/opt/odoo/openerp/sql_db.py", line 215, in execute 
        res = self._obj.execute(query, params) 
    
    ProgrammingError: column "transient" does not exist 
    LINE 1: select model, transient from ir_model where state='manual' 
    

    是否有我也要跟着升級數據庫的任何步驟或者一切都是手工完成的?如果是,我該怎麼辦?顯然它失敗了,因爲我的數據庫中沒有特定的列。但是有沒有更新腳本,因爲我擔心,如果我改變這個,會有下一個等待我的錯誤。

    在此先感謝。

  • 回答

    3

    您可以通過轉至link 來要求odoo公​​司爲您完成該任務。但他們會爲此收取費用。如果你能做到這一點你自己在這裏是如何做到這一點的文檔, https://doc.therp.nl/openupgrade/intro.html

    選項2:我們可以使用的pgAdmin(PostgreSQL的GUI工具)。只是選擇你的數據庫名稱,並在頂部,你可以看到啓用SQL,點擊它併發出一個sql查詢來顯示所有數據(你必須知道你想要檢索的表名),然後你可以導出它。導出的文件包含所有帶有列標題的數據,我們可能必須根據odoo9 DB.Once完成後,選擇odoo9數據庫,右鍵點擊要導入數據的表名,並選擇導入選項。它可能需要一段時間,它應該給消息「數據導入成功」。

    +0

    謝謝你的鏈接!我想現在我理解了更新Odoo的過程。你有從8.0到9.0更新的經驗嗎?我只有一個自定義模塊,其餘是標準的Odoo模塊。 – Freddy

    +0

    好的,我剛剛發現,他們目前正在使用9.0遷移腳本。再次感謝您的回答,我將標記爲正確的,因爲這似乎是正確的方式去爲我。 – Freddy

    +0

    您也可以使用一些ETL工具 – ChesuCR

    2

    我在Github找到了答案。

    關鍵是要創建一個名爲transient場是Boolean與表ir_model默認值false

    正如我所料,這不是一個完整的解決方案,因爲數據庫還有其他問題需要調整。

    0

    您試圖在Odoo 9.0上運行Odoo 8.0數據庫。

    'transient'列位於代碼庫中,而不是8.0代碼庫中。因此,8.0數據庫正在9.0代碼庫上運行。因此,數據庫尚未正確升級。

    正如前面的答案所述。你可以讓Odoo去做,也可以自己做。