Я занимаюсь переносом приложения на другой сервер, и мне нужно будет перенести содержимое базы данных из 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
с большим успехом