10年ほど前に作成した予約システムの新バージョンを作成しています。
それに伴い、データベースの移行作業を行なっています。
それぞれの環境は以下の通りです。
旧システム:PostgreSQL、EUC_JP
新システム:MySQL、UTF-8
作業の準備のため、localeがUTF-8の環境でEUC_JPのデータベースを作成しました。
単純に文字コードを指定して作成しようとしたところ、以下のエラーが出力されました。
1 2 3 |
$ createdb -U (ユーザ名) -E EUC_JP (データベース名) createdb: database creation failed: ERROR: encoding EUC_JP does not match locale jp_JP.UTF-8 DETAIL: The chosen LC_CTYPE setting requires encoding UTF8 |
そのため、以下のような実行でデータベースを作成しました。
1 2 3 4 |
$ psql -U postgresql postgres=# CREATE DATABASE (データベース名) WITH TEMPLATE=template0 ENCODING='EUC_JP' LC_COLLATE='C' LC_CTYPE='C'; CREATE DATABASE |
データの移行作業については、追々書いていきたいと思います。