Перемещение информации между базами данных - PullRequest
0 голосов
/ 17 марта 2010

Я на 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

Dest выглядит как источник в структуре, но уже содержит информацию в таблицах пользователей и комментариев, которую необходимо сохранить.

Я думаю, мне, вероятно, придется сделать это в несколько шагов.

Шаг 1, я бы поместил Source в файл, используя команду Postgres Copy.

Шаг 2. В Dest я бы добавил временный столбец second_key как для пользователя, так и для комментариев, а также новую таблицу присоединения SecondUserComments.

Шаг 3, я бы снова импортировал выгруженный файл в Dest, используя Copy, с ключами, введенными в столбцы second_key.

Шаг 4, я бы добавил строки в UserComments в Dest на основе содержимого SecondUserComments, только на этот раз используя настоящие первичные ключи. Можно ли это сделать с помощью команды SQL или мне нужен сценарий?

Шаг 5, удалите таблицу SecondUserComments и удалите столбцы second_key.

Это звучит как лучший способ сделать это, или есть лучший способ, который я пропускаю?

1 Ответ

1 голос
/ 17 марта 2010

Вы можете использовать dblink для подключения из одной базы данных к другой и просто вставить нужные вам записи и столбцы. Тогда вам не нужно менять модель данных, не нужно делать pg_dump, просто старый добрый SQL.

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