[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-users:01671] Re: potato から woody のデータ移行失敗



中山先生
伊藤@NaClです。
たいへんお世話になります。

実はこの現象が出るユーザーと出ないユーザーが
いるだろうと想定していました。

2次的な原因としてはPostgreSQL7.1.x から PostgreSQL7.2.x へ
バージョンがあがってデータチェックが強化され不正な文字
(例えば日本語で2バイト目が不正なため画面に表示させると
化けてしまうような文字)が含まれる場合エラーとなってその
テーブルの処理はスキップされてしまいます。
7.1.x の時はこのチェックはなかったために問題なく処理ができて
いたということになります。

本質の原因は「日レセ」で不正な文字でもありながらそのチェック
ができていなかったということになりますがどうしてそのようなデータ
がつくられたか原因がはっきりしていません。

この問題のため簡単にpotatoからwoodyへアップグレードはできない
と思いwoody版を提供した時にはクリーンインストールのみで
ということにしたわけです。

potato版でテーブルに不正な文字が存在するかチェックしなければ
いけませんがいい方法が現時点でも思いつかなくて苦しんでいます。

中山先生の場合は
患者情報のようですので
$ pg_dump -R -t tbl_ptinf orca > (ダンプファイル名)
と患者情報テーブルだけダンプをとることを実行していただき
そのダンプファイルをjlessコマンドなどで表示してみると
化けた文字が表示されるところが確認できると思います。

こんな回答しかできませんがよろしくお願いします。


> 中山裕雄@鳥取県です。
>
> > これでpotatoのデータをDB丸ごと入れ替えれば
> > めでたくデータ移行完了したwoody版ORCAになります。
> > (DB構造が同じはず、確認はしていませんが。)
>
> こう書きましたが、実はうまく行きませんでした。
>
> potato版ORCA(0.9.35)のデータをdumpして
> woody版ORCA(0.9.35)の入ったPCへコピーします。
>
> 伊藤さんに教えて頂いたとおり
>
> $ dropdb orca
> $ createdb orca
> $ psql orca < (ダンプファイル)
>
> を行ったところ
>
> ERROR: copy line 949, Invalid EUC_JP character sequence found (0xa100)
> lost synchronization with server,resetting connection
> 0xa330でも同様のメッセージが出ました。
>
> DBの中身を調べるとテーブルは問題なく作製されていて
> tbl_ptinf以外のデータも問題なく移行できていました。
>
> ところがtbl_ptinfだけが空でデータ移行に失敗していました。
>
> dumpファイルに問題があるのかと思ってpotatoで
> createdb orcatestを作成して dumpファイルを読み込むと
> エラー無く再構築できます。
>
> 試しにpgaccessを使ってpotatoのtbl_ptinfの中身をエクスポートして
> そのファイルをwoodyでインポートすると今度は
>
> Invalid EUC_JP character sequence found(0xaa00)
>
> とやはりエラーでインポートできません。
>
> ちなみにpotatoもwoodyでも DBのエンコードはEUC_JPに
> なっているのも確認しました。
> また、そもそも患者データも正規の移行プログラムを使用して(ver4.0)
> 移行したものです。
>
> potatoからwoodyへのデータ移行は今回は正式な手順はアナウンスされていない
> のであくまでも自己責任ですが、他には同様の現象に遭遇された方は
> ありませんでしょうか?
>
> 中山小児科内科医院
> 中山裕雄