web-dev-qa-db-ja.com

最も信頼性の高い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でダンプし、Postgresセットで再ダンプするためにMySQLサーバーにインポートし、次を追加しました。

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

postgresにインポートする前にダンプファイルの先頭に移動します。これにより、ダンプファイルのより深いところに別の構文エラーが発生するまで(この時点では、2498行のように)ある程度の成功が得られました。

MariaDBデータベースをpostgres互換のダンプに変換するより信頼性の高い方法はありますか?

3
tony_perkis666

Mysqldumpではなく、このためのツールを使用することを強くお勧めします

過去に使用したことがあります

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

大成功で

1
Mike