アプリを別のサーバーに移行中です。データベースの内容を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
でダンプし、Postgresセットで再ダンプするためにMySQLサーバーにインポートし、次を追加しました。
SET standard_conforming_strings = 'off'; SET backslash_quote = 'on';
postgresにインポートする前にダンプファイルの先頭に移動します。これにより、ダンプファイルのより深いところに別の構文エラーが発生するまで(この時点では、2498行のように)ある程度の成功が得られました。
MariaDBデータベースをpostgres互換のダンプに変換するより信頼性の高い方法はありますか?
Mysqldumpではなく、このためのツールを使用することを強くお勧めします
過去に使用したことがあります
https://github.com/philipsoutham/py-mysql2pgsql
大成功で