2010-03-16 82 views
0

我在Postgres上,並且在同一臺機器上有兩個數據庫,並且我想將一些數據從數據庫Source移動到數據庫Dest。在數據庫之間移動信息

Database Source: 
Table User has a primary key 
Table Comments has a primary key 
Table UserComments is a join table with two foreign keys for User and Comments 

目標看起來就像來源結構,但已在用戶和評論表中的信息需要保留。我想我可能不得不在幾個步驟中做到這一點。

步驟1,我會使用Postgres Copy命令將Source轉儲到文件中。

步驟2,在目的地我會添加一個臨時second_key列用戶和評論,和一個新的SecondUserComments連接表。

第3步,我會將轉儲的文件導入到Dest,使用Copy再次輸入到second_key列中。

第4步,我會根據SecondUserComments的內容向Dest中的UserComments添加行,這次只使用真正的主鍵。這可以用SQL命令完成,還是需要一個腳本?

第5步,刪除SecondUserComments表並刪除second_key列。

這聽起來像是做這件事的最好方法嗎,還是有更好的方法可以忽略?

回答

1

您可以使用dblink從一個數據庫連接到另一個數據庫,只需插入您需要的記錄和列。然後,您不必更改數據模型,也不必執行pg_dump,只需執行一些很好的舊SQL。

+0

我怎麼能避免改變數據模型鑑於我也試圖導入加入主鍵的連接表,我將需要改變? – 2010-03-17 16:58:48