Миграция между двумя очень разными СУБД требует гораздо большего, чем просто миграция данных. Но миграция данных обычно самая легкая часть.
Способ, который я попробовал, который является бесплатным, и я могу подтвердить, что он работает:
- создать дамп только для схемы mysql
- Настройте SQL с помощью текстового редактора и много поиска и замены
- запустить преобразованный SQL в Postgres
- Создание простого текстового дампа из MySQL (например, CSV или другой формат с разделителями)
- импортировать данные с помощью команды COPY PostgreSQL
Импортировать данные на самом деле может быть сложно, если вы полагаетесь на поведение MySQL, принимающее недопустимые данные (например, 31 февраля)
Я предполагаю, что это будет быстрее, чем поиск инструмента, оценка множества из них и затем попытка понять тот, который вы выбрали. Но это зависит от того, какой "большой" вы имеете в виду. Если большой размер таблицы составляет несколько сотен, это может оказаться невозможным. Если большой относится только к числу строк, то это, вероятно, самый быстрый способ сделать это.
Существуют некоторые инструменты, которые могут выводить схему базы данных в формате, независимом от СУБД (XML), например Liquibase , SchemaSpy или WbSchemaReport . С Liquibase, вероятно, является самым простым в использовании. Другим потребуется ручная работа по написанию / расширению XSLT для преобразования сгенерированного XML.
Если вы используете триггеры и хранимые процедуры в MySQL, я не верю, что найдется какой-либо автоматизированный инструмент, который сможет их перевести, не требуя серьезного ручного исправления впоследствии - и тогда сгенерированные процедуры, вероятно, не будут использовать какие-либо расширенные функции целевой СУБД ,