MT/3.3のデータをPostgreSQLからMySQLへ移行する

MySQL上にスキーマを作成

データベースを作成する。
$ echo 'create database mt;' | mysql
MySQLを見るように修正する。
$ vi mt/mt-config.cgi

とりあえずmt.cgiにアクセスしてデータベースを初期化する。この時点でスキーマと初期データが格納される。

SQLを作成

PostgreSQLのデータを -a, -Dオプション付きでダンプする。
$ pg_dump -a -D mt > mt.dump
冒頭のSET文、SELECT文を全て削除する。
$ sed -e 's/^\(SET\|SELECT\) .*//' -i mt.dump
初期データを削除する。
$ grep -e '^INSERT INTO' mt.dump | sed 's/INSERT INTO \([^ ]*\).*/\1/' | sort | uniq
として得られたテーブル全てに対し、
mysql> delete from テーブル
を実行。

移行

$ mysql mt< mt.dump