Назад | Перейти на главную страницу

Самый надежный метод дампа MariaDB в Postgres

Я занимаюсь переносом приложения на другой сервер, и мне нужно будет перенести содержимое базы данных из MariaDB в Postgresql.

В большей части документации указано, что для создания дампа таблицы должно быть достаточно следующего формата:

mysqldump -u root -p --compatible=postgresql db > db.sql (and once with --default-character-set=utf8)

Я получаю ряд синтаксических ошибок, когда перехожу к повторному импорту базы данных в Postgres; то, что раньше не происходило с базами данных MySQL, поэтому я подозреваю, что это связано с MariaDB. Я столкнулся с аналогичной проблемой при переносе той же базы данных с MariaDB на другой сервер MySQL ранее.

Я проверил некоторые инструменты рекомендуется в документации Postgres но безрезультатно.

Для дальнейших экспериментов слил с --compatible=mysql а затем импортирован на сервер MySQL, чтобы повторно выгрузить его с установленным Postgres, и добавил:

SET standard_conforming_strings = 'off'; SET backslash_quote = 'on';

в начало файла дампа перед его импортом в postgres, что дало мне некоторый успех, пока я не обнаружил еще одну синтаксическую ошибку глубже в файле дампа (на этом этапе, например, 2498 строк).

Есть ли более надежный метод преобразования базы данных MariaDB в дамп, совместимый с postgres?

Я настоятельно рекомендую использовать для этого инструмент, а не mysqldump.

В прошлом я использовал

https://github.com/philipsoutham/py-mysql2pgsql

с большим успехом