экспортировать первый экземпляр базы данных во второй экземпляр - PullRequest
1 голос
/ 13 февраля 2012

У меня есть проект в ruby ​​на рельсах 3.0. У меня есть схема базы данных в pg.У меня есть экземпляр этого проекта на 2 серверах с соответствующими базами данных. Теперь я должен перенести все на один сервер. Так как я могу экспортировать данные из одной базы данных в другую? Это не может быть буквальный экспорт-импорт баз данных, потому что этоесть много таблиц с идентификатором и много ко многим отношениям. Так что в основном мне нужно добавить его, чтобы не было конфликта, например

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

иобъединяющие таблицы также должны иметь новые идентификаторы

1 Ответ

2 голосов
/ 13 февраля 2012

Не опускать максимальное значение поля идентификатора из всех таблиц назначения и добавлять их в качестве значений смещения к полям идентификатора источника.

Ex:

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

Обратите внимание, что вы не можете выполнить миграцию в

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...