JIS X 0213:2004(JIS2004) と Java と PHP と RDBMS

ずいぶん前に, EC-CUBE の ML へ投稿した話題ですが, どうも過去ログに埋もれているので, 再度まとめてみます…

Windows Vista で, 日本語の文字集合に, JIS X 0213:2004(JIS2004) が採用されました.

このため, 扱える漢字が増えたり, 字体が変化したりして, さまざまな影響があります.

EC-CUBE を代表する PHP のアプリケーションや, Java の場合, どのような影響が考えられるでしょうか.

以前, Windows Vista での影響調査をする機会があり, いろいろ調べましたので, ちょっとまとめてみます.

続きを読む

広告

PostgreSQL8.1

PostgreSQL を 8.0.3 から 8.1 に更新中。
管理してるサーバーのほとんど全部更新してます。
PostgreSQLのメジャーバージョンが上がったときには、データベースクラスタも initdb し直さなくてはいけないので、アップグレードも結構大変だったりします。
たいていは、マニュアルに書いてある通り、 –prefix を指定して、稼働中のDBとは別の場所にインストールして、違うポートで postmaster を立ち上げて、 pg_dumpall -p 5432 | psql -d postgres -p 6543 のようにするのでしょうが、pg_dumpall はラージオブジェクトの dump ができないので、僕みたいに LargeObject をよく使う人は、pg_dump と pg_restore をつかってDBを一つずつ dump, restore しなくてはならず、面倒です。
そこで、こんなシェルスクリプトを使って、この作業を自動化しています。
ここでは、新しいPostgreSQLを –prefix=/usr/local/pgsql8.1 でインストールして、 initdb して、 postmaster を port 6543 で立ち上げてから、PostgreSQLのスーパーユーザー権限で、このスクリプトを実行します。

#!/bin/sh
# 古いPostgreSQLのprefixを指定
OLD_PGSQL=/usr/local/pgsql
# 新しいPostgreSQLのprefixを指定
NEW_PGSQL=/usr/local/pgsql8.1
# 古い方のPGPORTを指定
OLD_PORT=5432
# 新しい方のPGPORTを指定
NEW_PORT=6543
LD_LIBRARY_PATH=${NEW_PGSQL}/lib; export LD_LIBRARY_PATH
dbnames=`${NEW_PGSQL}/bin/psql -q -t -A -d template1 -c "SELECT datname FROM pg_database WHERE datname != 'template0'"`
${NEW_PGSQL}/bin/pg_dumpall -g -p ${OLD_PORT} | ${NEW_PGSQL}/bin/psql -d template1 -p ${NEW_PORT}
for db in ${dbnames}; do
echo -n " $db"
file=./dump_${db}.tar
${NEW_PGSQL}/bin/pg_dump -b -Fc -f ${file} ${db}
${NEW_PGSQL}/bin/dropdb -p ${NEW_PORT} ${db}
${NEW_PGSQL}/bin/createdb -p ${NEW_PORT} ${db}
${NEW_PGSQL}/bin/psql -p ${NEW_PORT} -q -t -A -d ${db} -c "DROP TABLE tellers"
${NEW_PGSQL}/bin/pg_restore -p ${NEW_PORT} -d ${db} ${file}
[ $? -gt 0 ] && rc=3
done

自動的に、古いDB を dump し、新しい方へ restore するようになっています。