PostgreSQL(EUC_JP)からMySQL(UTF-8)へのデータ移行

Pocket

localeがUTF-8の環境でEUC_JPのデータベースを作成するの続きです。

テーブル数がそれほど多くない環境での作業です。
もっと良い方法があったらぜひ教えてください。

それぞれの環境は以下の通りです。
【旧システム】 PostgreSQL、EUC_JP(locale、データベースの文字コードとも)
【新システム】 MySQL、UTF-8(locale、データベースの文字コードとも)

まず、【旧システム】での作業です。

  1. テーブル毎にcsvファイルを作成します。例として、テーブル名をcrestboz、csvファイル名をcrestboz.csvとします。

    この時点で、crestboz.csvの文字コードはEUC_JPです。

  2. 作成したcrestboz.csvから、先頭のカラム名が記述された行と最後尾の行数が記述された行を削除します。
  3. ファイルの文字コードをUTF-8に変換します。

次に、【新システム】での作業です。

  1. データのインポート対象のテーブルが既存の場合はDELETEします。
    (*テーブルをDROPして作成し直すと、ID値がリセットされます。)
  2. csvファイルをインポートします。

    関連記事:load data infile文で文字化けする場合の対策

以上の作業を、データを移行するすべてのテーブルについて実行します。