MySQLのデータ移行
MySQLは良く使うのだけど、PostgreSQLは使ったことなかったのでテーブル定義を書き直すのがめんどくさく、何かマイグレーションツールは無いものかと検索検索。
参考:
Converting from other Databases to PostgreSQL
MySQL to PostgreSQL Migration Wizard by EnterpriseDB v1.1
MySQL to PostgreSQL Migration Wizard by EnterpriseDB v1.1というものを使ってみることにした。
PostgreSQLのEnterpriseDBをFreeでインストールすれば、機能の一部として使えるみたいなのだけど、ユーザ登録をしないといけないらしい。配布されているソースコードから直接起動して使ってみることに。起動までの手順をメモ
ソースコードのダウンロード
Downloadページの、[Components & Other Downloads]タブをえらび、MySQL PostgreSQL Migration Wizard by EnterpriseDB v1.1をダウンロード。
適当なディレクトリに解凍しておく。
解凍するとwizardディレクトリが作成されるはず
wizard
├─build
│ ├─core
│ └─wizard
├─lib
├─build.xml
└─src
java起動用batファイルの作成
wizardディレクトリにbatファイルを作成
@echo off
set CP=%CP%;%1
@echo off
set CP=.;build\core;build\wizard
for %%J in (lib\*.jar) do call cpset %%J
echo classpath = %CP%
java -cp %CP% com.enterprisedb.migration.WizardLauncher
あとは、コマンドで実行するだけ
(解凍ディレクトリ)> wizard.bat
使ってみて・・・
マイグレーションの際、環境を合わせないとうまくデータ移行ができないのかもしれない。
(今回の使用は、Amazon RDS(MySQL) -> Windows上のPostgreSQL)
DBのロケール設定が違うためにうまくデータが変換できてないような気がする。