2012-02-13 71 views
1

我在rails 3.0中有一個ruby項目。我在pg中有一個數據庫模式。我有兩個服務器上的這個項目的實例與各自的數據庫。現在我必須將所有事情轉移到一臺服務器。那麼我如何將數據從一個數據庫導出到另一個數據庫。它不能成爲數據庫的文字導出導入bcos它有很多通過ID和多對多relationship.So表基本上我需要讓有S對於例如沒有衝突將其追加將數據庫的第一個實例導出到第二個實例

Databse 1 table 1 user 
id Name 
1 Josh 
2 Rajn 
4 Kush 

Databse table 1 user 
id Name 
1 Ram 
2 Kevin 
7 Don 

所以新shud是

Databse table 1 user 
id Name 
1 Ram 
2 Kevin 
7 Don 
8 Josh 
9 Rajn 
10 Kush 

和連接表應該有新的ID也

回答

2

沒有降低最大值來自所有目標表的id字段,並將它們作爲偏移值添加到源id字段。

例:

migration.sql

SELECT @max_user_id := MAX(id) FROM users; 
SELECT @max_comment_id := MAX(id) FROM comments; 


# Then perform the following mysql commands in the target database: 

INSERT INTO target.users(id, name) SELECT id + @max_user_id, name FROM source.users 

INSERT INTO target.comments(id, comment, user_id) SELECT id + @max_comment_id, comment, user_id + @max_user_id FROM source.comments 

請注意,你不能做

+0

遷移,但它有許多許多關係需要移位也 – 2012-02-13 09:30:20

+0

Yatish其中,你最好試着編寫處理所有這些關係和東西的Ruby代碼。 @Arun解決方案非常好,可以應用於具有較少複雜關係的表格,但您可以隨時隨地處理這些ID。 – Nilesh 2012-02-13 09:49:34

相關問題