Миграция по-быстрому

В данной статье пойдет речь, как перенести структуру и данные из одной БД в другую. Этот способ позволяет переносить данные между различными СУБД (Oracle, PostgreSQL, Mysql, h2 и другие). Практика не займет и 5 минут.

Для примера возьмем и перенесем данные БД “pentaho” из Mysql в PostgreSQL. Для решения воспользуемся SQL Power Architect + PDI (дамп БД “pentaho” в Mysql качаем тут Загрузка/Download):

План видео (ссылка на youtube http://youtu.be/s9PmU8pa5sQ)
00:00 Введение
00:39 Постановка задачи
03:00 Практика
03:07 Получение схемы таблиц в SQL Power Architect.
03:55 Создание «Job» для PDI в SQL Power Architect.
05:07 Добавление подключений в «Job».
06:12 Вставка в «SQL» элемент создания таблиц и индексов.
07:35 Добавляем ограничения внешних ключей.
08:27 Перенос данных таблиц.
08:26 Визуальная проверка.

Этот способ может претендовать на универсальность и простоту использования.

Можно выделить особенность, которую использовали в уроке, а именно разделение схемы на две части:

  1. Первая - это задание таблиц и ключей.
  2. Вторая - это добавление ограничений после переноса данных (не раз встречал такие рекомендации. Более подробно можно почитать в [1])

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

Ссылки на материалы:

  1. Бэкап в csv и рестор http://www.sql.ru/forum/1117061/bekap-v-csv-i-restor
  2. Power*Architect User Guide http://www.sqlpower.ca/
  3. Получение дампов данных и структуры таблицы http://www.mysql.ru/docs/man/mysqldump.html