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

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文で文字化けする場合の対策

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

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

10年ほど前に作成した予約システムの新バージョンを作成しています。
それに伴い、データベースの移行作業を行なっています。

それぞれの環境は以下の通りです。
旧システム:PostgreSQL、EUC_JP
新システム:MySQL、UTF-8

作業の準備のため、localeがUTF-8の環境でEUC_JPのデータベースを作成しました。

単純に文字コードを指定して作成しようとしたところ、以下のエラーが出力されました。

そのため、以下のような実行でデータベースを作成しました。

データの移行作業については、追々書いていきたいと思います。