Конвертація даних з MySQL у PostgreSQL, Web-розробка

Web-розробка

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

10 лют. 2015 р. 1978

Доброго вам дня! Як і всі "розробники", я намагаюся освоювати щось нове, пробувати нові технології та використовувати їх на практиці. Більшість розробників-початківців починає знайомство з СУБД 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, HEBREW8, HP8 ACROMAN, SWE7, TIS620, UTF8 (набір знаків юнікоду);
  • Підтримка первинних ключів та індексів;
  • Підтримка зовнішніх ключів (зв'язків);
  • Покращені параметри конфігурації:
  • - Часткова вибірка об'єктів для конвертації баз даних;
  • - Налаштування об'єктів (таблиці, поля, індекси, зовнішні ключі) перед процесом конвертації;
  • - Виявлення можливих помилок конвертації на етапі конфігурації.
  • Підтримка сесій – усі налаштування зберігаються для подальшого використання;
  • Підтримка типів `ENUM` та `SET`
  • Підтримка типу доступу для ідентифікатора `GUID`;
  • Підтримка пакетів для OLE-об'єктів;
  • Можливість підключення до сервера баз даних PostgreSQL, встановленого на машинах, які використовують Unix та Windows OS.

Скажімо так, це одна з найкращих софтін для конвертації даних, перед тим як писати цей огляд я перепробував кілька і половину не могли зробити.

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

І докладніше про помилку:

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

Загалом програмою задоволений, тепер доведеться переробляти свою програму ORM