Конвертація даних з 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