SYSTEM DEVELOPMENT

STUDY GROUP

MySQL -> PostgreSQL データ移行

どうもSIです。
 
最近業務でmysqlからpostgresqlに移行作業を実施したので簡単にメモを残しておこうかと思います。
 
環境/事前準備
・XOS
mysql2pgsql
mysqlのバックアップ※mysql.sql,mysql.dump等
 
①任意の場所に作業用フォルダを作成
>mkdir Desktop/workspace
②mysql2pgsql,mysqlのバックアップを①で作成したフォルダに保存する。
今回はバックアップを用意できなかったのでリンクからtest.sqlを利用します。
>cd Downloads/
>mv test.sql /Users/<<user_name>>/Desktop/workspace/
>mv mysql2pgsql.perl /Users/<<user_name>>/Desktop/workspace/
③①で作成した作業フォルダに移動
cd /Users/<<user_name>>/Desktop/workspace/
④test.sqlの変換
>./mysql2pgsql.perl test.sql postgresql.sql
以下の様に変換 logがターミナル上に出ていれば正常に動いています

table “rhm_host_info” will be dropped CASCADE
“rhm_host_info_id_seq”–
table “rhm_host_info” will be dropped CASCADE
“rhm_host_info_id_seq”–
table “account” will be dropped CASCADE
table “folder” will be dropped CASCADE
table “ownerx” will be dropped CASCADE
table “timestamp_check” will be dropped CASCADE
table “test” will be dropped CASCADE
table “phpchara_answers” will be dropped CASCADE
table “bb_posts” will be dropped CASCADE
table “bbschool_posts” will be dropped CASCADE
table “cpg_dict” will be dropped CASCADE
table “cpg_filetypes” will be dropped CASCADE
table “t” will be dropped CASCADE
table “osc_products” will be dropped CASCADE
table “one_insert_check” will be dropped CASCADE
table “chars_insert_check” will be dropped CASCADE
table “float_check” will be dropped CASCADE

以上です。
 
未確認ですがdumpでも変換できる様です。
>./mysql2pgsql.perl test.dump postgresql.dump
 
また、Windowsで変換する場合はPerlスクリプトが使える状況か確認してください
コマンドプロンプト上で
>perl -v
バージョンが帰って来れば使える状態です
>perl mysql2pgsql.perl test.sql postgresql.sql
で変換できるかと思います。
 
以上、mysql->posqgresql 変換でした〜

menu