データベースの文字コードをEUCからUTF-8に変換

更新日2021-11-26 (金) 14:29:50
作成日 2021年11月26日

ユーザを postgresに変更

参考ページ

手順

現在のorcaデータベースの文字コードの確認

$ sudo -u orca psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 orca      | orca     | EUC_JP   | C           | C           |
                        ^^^^^^←EUCになっている

変換の手順

  • 変更したいエンコーディングを設定

oruserで実行

$ sudo vi /etc/jma-receipt/db.conf

db.confが存在しないときは新規作成して以下を追加

DBENCODING="UTF-8"
  • orcaのサービス停止
$ sudo systemctl stop jma-receipt
$ sudo systemctl status jma-receipt
● jma-receipt.service - jma-receipt 
     Loaded: loaded (/lib/systemd/system/jma-receipt.service; enabled; vendor p>
     Active: inactive (dead) since Thu 2021-11-25 14:14:10 JST; 43s ago
    Process: 75878 ExecStart=/usr/sbin/jma-receipt (code=exited, status=0/SUCCE >
(略)
  • データベース変換スクリプトの取得
$ wget https://ftp.orca.med.or.jp/pub/receipt/ubuntu/misc/jma-dbconvert-20200417.tar.gz
$ tar zxvf jma-dbconvert-20200417.tar.gz
$ cd jma-dbconvert-20200417
  • データベースの変換チェック
$ sudo -u orca ./jma-dbconvert.sh -t
データベース [orca]
エンコーディング [EUC_JP]
ロケール [C] [C]

OK: 拡張漢字無効

データベースに不正な文字が入っていないかチェックします...

OK: 不正な文字はありませんでした
  • データベースの変換の実行
$ sudo -u orca ./jma-dbconvert.sh 
(略)
CREATE INDEX
CREATE INDEX
CREATE INDEX
psql -w  template1 -A -c "ALTER DATABASE orca RENAME TO orca_backup;"
ALTER DATABASE
psql -w  template1 -A -c "ALTER DATABASE orca_temp RENAME TO orca;"
ALTER DATABASE
OK
  • orcaデータベースの文字コードが変わった確認
$ sudo -u orca psql -l
                                   List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
 orca        | orca     | UTF8     | C           | C           |
                          ^^^^←UTF-8に変更になっていることを確認
 orca_backup | orca     | EUC_JP   | C           | C           |

orcaの起動

$ sudo systemctl start jma-receipt
$ sudo systemctl status jma-receipt
● jma-receipt.service - jma-receipt
     Loaded: loaded (/lib/systemd/system/jma-receipt.service; enabled; vendor p>
     Active: active (running) since Thu 2021-11-25 14:39:28 JST; 6s ago
   Main PID: 425873 (jma-receipt)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-11-26 (金) 14:29:50