Конвертация данных из MySQL в PostgreSQL

Web-разработка

Автор: Александр Степанов

10 февр. 2015 г., 11:02:44  4863


Доброго времени суток! Как и все "разработчики", я стараюсь осваивать что то новое, пробовать новые технологии и использовать их на практике. Большая часть начинающих разработчиков начинает знакомство с СУБД MySQL, потому что она наиболее распространенная и неприхотливая в типизации и обслуживании. СУБД идет почти во всех сборках (Денвер, ХАМП, Open Server и etc), написано кучу документации и примеров оптимизации сервера, но если захочешь использовать нестандартные вещи, такие как:

  • геолокацию;
  • NoSQL хранилище;
  • новые типы данных.

то, возможностей MySQL становится явно недостаточно. Поэтому и было принято решение перенести данные из одной СУБД в другую. Вроде бы все должно спокойной перенестись т.к. там и там SQL, но нет, с первого раза даже у меня нашлись ошибки в схеме (благодаря DBConvert). Ну давайте рассмотрим плюсы PostgreSQL:

  • Типы данных;
  • Целостность данных;
  • hstore, json, jsonb;
  • нет форков и т.д.;
  • полная совместимость с SQL стандартами.

Это не полный список плюсов PostgreSQL, главным плюсом является более профессиональный подход к построению СУБД.

            В этой небольшой заметке постараемся рассмотреть замечательную утилиту DBConvert for MySQL & PostgreSQL. Вот что пишут разработчики:

            DBConvert для MySQL & PostgreSQL  надёжный инструмент двустороннего действия, позволяющий конвертировать данные из одной базы данных в другую.

Из возможностей:

  • Высокая производительность и скорость конвертации данных
  • Оптимальное преобразование типов данных
  • Безопасная конвертация и целостность базы данных
  • Условная миграция данных
  • Обходные пути в работе с защитными системами и правами доступа
  • Поддержка полной архитектуры юникода
  • Сохраняющиеся сессии
  • Режим командной строки

Функциональные возможности

  • Интерактивный графический пользовательский интерфейс/режим командной строки;
  • Сохранение данных в PostgreSQL дамп и PHP-скрипт для экспортирования в базу данных PostgreSQL;
  • Поддержка рабочих групп для MS MySQL;
  • Возможность замены символов в названиях таблиц и полей (которые не должны быть использованы как символы, зарезервированные для внутренних целей СУБД) на другие подходящие символы.
  • Автоматизация процесса конвертации с помощью планировщика задач.
  • Возможность выбора типов таблиц (ISAM, MYISAM, HEAP, InnoDB или BDB) при копировании данных в PostgreSQL или PostgreSQL дамп;
  • Поддержка юникода/поддержка наборов символов для подсоединения:
  • LATIN1, LATIN2, LATIN5, LATIN7, ARMSCII8, ASCII, CP1250, CP1251, CP1256, CP1257, CP850, CP852, CP866, DEC8, GEOSTD8, GREEK, HEBREW, HP8, KEYBCS2, KOI8R, KOI8U, MACCE, MACROMAN, SWE7, TIS620, UTF8 (набор знаков юникода);
  • Поддержка первичных ключей и индексов;
  • Поддержка внешних ключей (связей);
  • Улучшенные настройки конфигурации:
  • — частичная выборка объектов для конвертации баз данных;
  • — настройка объектов (таблицы, поля, индексы, внешние ключи) перед процессом конвертации;
  • — выявление возможных ошибок конвертации на этапе конфигурации.
  • Поддержка сессий – все настройки сохраняются для дальнейшего использования;
  • Поддержка типов `ENUM` и `SET`
  • Поддержка типа доступа для идентификатора `GUID`;
  • Поддержка пакетов для OLE- объектов;
  • Возможность подключения к серверу баз данных PostgreSQL, установленного на машинах, использующих Unix и Windows OS.

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

            После настройки подключения к базам MySQL и PostgreSQL, программа выдаст список таблиц с пометками, если там содержатся ошибки. Например:

И более подробно об ошибке:

После исправления всех замечаний можно смело нажимать "Запуск" и ждать окончания. Одним из минусов, то что по окончанию процесса программа не выводит сообщения о статусе, с первого взгляда не поймешь закончена или нет конвертация.

В целом программой доволен, теперь придется переделывать свое приложение ORM

Скачиваем и пробуем: https://dbconvert.com/ru/convert-mysql-to-postgresql-pro.php