2013-02-07 47 views
1

如何根據正在使用的模塊連接到不同的數據庫?我們的場景如下:如何連接OpenERP中的其他數據庫?

我們有一個獨立的應用程序,在特定的服務器上運行自己的數據庫,並在不同的服務器上運行OpenERP。我們希望在OpenERP中創建一個模塊,它可以利用獨立應用程序服務器上的實體,而不是在其自己的數據庫中創建自己的實體,這可能嗎?我們如何更改ORM用於連接到自己的數據庫以指向不同數據庫的連接參數?

當然,一種方法是使用base_synchro模塊同步兩個數據庫之間所需的實體,但考慮到大量的數據,我們不希望重複。另一種方法是使用xmlrpc將數據導入OpenERP,但仍需要OpenERP數據庫中存在實體。

我們怎樣才能解決這個問題,而沒有數據重複? OpenERP中的模塊如何基於不同的數據庫創建?

回答

1

連接到外部應用程序的一種方法是創建一個連接器模塊。已經有,你可以看看幾個連接器模塊:

  • 雷鳥和Outlook插件
  • 的Joomla和Magento的模塊
  • 的「事件Moodle的」模塊

例如,joomla連接器使用joomla插件來處理OpenERP和joomla之間的通信。使用的通信協議是XML-RPC,但您可以選擇任何您想要的協議。您甚至可以選擇使用psycopg2模塊直接連接到外部數據庫(如果外部數據庫使用的是Postgresql),但不建議這樣做。但是如果這個外部應用程序沒有連接API,也許你沒有選擇。

您需要知道連接到此外部應用程序的可用方式並選擇其中之一。一旦你選擇了正確的協議,你可以創建你的OpenERP模塊。

可以使用osv.TransientModel對象(以前稱爲osv內存)映射存儲在外部應用程序中的實體。與這些對象相關的表格仍將在OpenERP數據庫中創建,但數據是不穩定的(在一段時間後刪除)。

相關問題