ホーム > 日記 > 原因の切り分けをしっかりしましょう

原因の切り分けをしっかりしましょう

PostgreSQLの7.4.Xの環境でDBをSQL_ASCII、PHPでclient_encodingをSJISで利用していたらリストアができないらしい。
実行環境はRedHat8系でした。


$ pg_dump backup | psql restore

確かにうまくいかない。


$ pg_dump backup > backup.dump

dumpファイル見てみると、先頭部分で「SET client_encoding = ‘EUC-JP’;」エラー発生した部分みてみるとデータの欠落がありました。
pg_dumpって特にエラーとか吐かないんですね。
リストアできないっていってたけど、問題はダンプがしっかりできないことっぽい。

ということでpg_dumpでクライアントエンコーディングを指定してあげることに。


$ export PGCLIENTENCODING=SJIS
$ pg_dump backup > backup.dump
$ psql restore < backup.dump

おゃできましたよ?

マイナー(リビジョン)バージョンでの差は知らん。

カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。