2011-09-19 177 views
2

我正在嘗試升級爲Openerp編寫的模塊。雖然它在本地計算機和本地openerp服務器上正常工作。當我嘗試通過SVN將文件更新到暫存服務器時,它給了我下面的錯誤。該錯誤指出他們試圖向DB插入一條記錄,其實是一個更新而非插入。我擔心直接從Postgres數據庫中刪除這條記錄,但我認爲它可能會訣竅。Openerp模塊更新失敗

我在暫存服務器上進行SVN更新之前,還刪除了所有現有的文件。可能是這可能是坑下跌,但我不太確定。讓我知道你們認爲什麼是這個問題的最佳解決方案。以下是在SVN更新後重新啓動時,Openerp Server中顯示的錯誤消息。服務器從這裏停下來,永不停止。

但是,當我恢復文件或刪除它們並更新服務器像魅力一樣工作。

module abc: loading objects 
[2011-09-14 08:12:49,425][oe_test] INFO:init:module abc:registering objects 
[2011-09-14 08:12:49,432][oe_test] INFO:init:module abc: creating or updating database tables 
[2011-09-14 08:12:49,434][oe_test] DEBUG:sql:bad query: INSERT INTO ir_model_data (name,date_init,date_update,module,model,res_id) VALUES (E'model_abc', now(), now(), E'abc', E'ir.model', 301) 
[2011-09-14 08:12:49,434][oe_test] DEBUG:sql:('model_abc', u'abc', 'ir.model', 301) 
[2011-09-14 08:12:49,434][oe_test] DEBUG:sql:duplicate key value violates unique constraint "ir_model_data_module_name_uniq" 

問候,

加揚

+1

您插入重複的值到ir_model_data.name –

回答

2

在遇到上述問題後,我能夠找出實際原因並解決問題。下面的問題是我有另一個意外地帶有相同名稱的模塊。所以由此導致上述衝突異常發生。最後,我更改了模塊名稱,並對模型名稱和問題進行了排序。

感謝您的所有投入。

問候,

加揚

1

你嘗試與-u your_module_name -d your_db_name啓動服務器?

+0

謝謝,我也問過我們的管理員清潔香港,讓看這是否會 –

+0

這沒有幫助:( –

3

[2011-09-14 08:12:49434] [oe_test] DEBUG:SQL:重複的關鍵值違反唯一約束 「ir_model_data_module_name_uniq」

在ir.model.data,有一個「_sql_constraint」,爲唯一記錄名稱定義。所以錯誤來自該代碼並且說你不能有重複的記錄名稱。

根據我的知識,這種錯誤可能會發生,因爲* _data.xml文件中有重複的記錄ID。

注意:在您的* _data.xml文件中檢查noupdate =「True」或不。

+0

喜救我可以ü請告訴我在哪裏可以找到這個* _data.xml? –

+0

在這裏,「*」表示任何文件名(對於您的模塊,它可能是abc_data.xml或具有不同名稱的任何數據文件),例如,檢查「partner_data」。在「openerp-server/bin/addons/base/res/partner /」文件夾中輸入「xml」。 * _data.xml文件通常用於將演示數據插入到dat凌辱。如果您從此文件重複記錄ID,則可能會出現上述錯誤。 – Yajushi