将第一个数据库实例导出到第二个实例

时间:2012-02-13 08:58:52

标签: mysql ruby-on-rails ruby database

我在rails 3.0上有一个Ruby项目。我在pg中有一个数据库模式。我在2个服务器上有这个项目的实例和各自的数据库。现在我必须把所有东西都转移到一个服务器上。那么如何将数据从一个数据库导出到另一个数据库?它不能是数据库的文字导出导入bcos it有许多表具有id和多对多关系。所以基本上我需要追加它以便没有冲突例如

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

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

所以新的应该是

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

并且连接表也应该有新的ID

1 个答案:

答案 0 :(得分: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

请注意,您无法在

中进行迁移