MySQLデータベースをPostgreSQLに変換するためのコマンドラインツールはありますか?また、通常のmysqldump
コマンドを使用してデータベースを変換する方法があるかどうかも知りたいです。
やってみました:
mysqldump --compatible=postgresql dbname > export.sql
次に、引用符をエスケープするためにこれを行います
sed "s/\\\'/\'\'/g" export.sql > export1.sql
もう少しマッサージが必要になる可能性があるので、mysqldump docoをより詳しく見てください。
以下は、非常に役立ついくつかのオープンソースツールです。
FromMySqlToPostgreSql は機能到達ツールであり、非常に使いやすいです。
それは、MySQL dbにあったのとまったく同じように、データ型をマップし、制約、インデックス、PK、およびFKを移行します。
内部ではPostgreSQL COPYを使用しているため、データ転送は非常に高速です。
PHP(> = 5.4)で記述されたFromMySqlToPostgreSql。
pgloader は、COPYコマンドを使用するPostgreSQLのデータ読み込みツールです。使用するだけの主な利点
COPY
\copy
NULL
実際には、EnterpriseDB自体が開発した、非常に使いやすい無料の移行ツールがあります。 StackBuilder経由でインストールできます: Migration Toolkit
たとえば、EnterpriseDB移行ウィザードを使用できます。
OracleDBを明示的に移行できます。ただし、Mysqlの場合、いくつかの制限があります。たとえば、ビュー、トリガー、ストアドプロシージャはサポートされません。
詳細については、 EDB Migration Toolkit を参照してください。確かではありませんが、mysql-> Oracle-> postgresqlを移行して、ストアドプロシージャを保存できます(存在する場合)。
これをGrep: データベースとSQL移行ツール
私は最近 DBConvert の非フリーツールを使用して、アクセスデータベースをpostgresに変換しましたが、無料で確実に実行しようとして無駄に費やした時間と比較して、お金に見合うだけの価値があることがわかりました。同様のツールを販売します MySQL <-> postgres を使用しましたが、これは使用していませんが、コマンドラインツールのみに関心がない場合は検討する価値があります。
あなたが私が何らかの方法でそれらと提携していないのではないかと思っている場合は:-)
これは、既存の回答に追加するだけで、この解決策を見つけるのに役立ちました。私は FromMySqlToPostgreSql を使用しました。あなたがする必要があるのは、ダウンロードして抽出するだけです FromMySqlToPostgreSql 、サンプル構成ファイルのコピーを作成し、そこにdb接続値を設定し、次のコマンドでインデックスファイルを実行します。
php index.php config.xml
シンプルながら効果的!
MySQL dbをPostgresql dbインデックス、fksおよびデータを含むに変換する機能を提供するオープンソースツールがあります。
https://github.com/ggarri/mysql2psql
このツールでは、スキーマの変更を定義することもできるため、実行時に現在のスキーマのアップグレードを実行できます。