ダウンロードURLよりzipaddrs.lzhを取得。lzhの展開はWindowsで実行。
$net start postmaster
でサービスを開始。端末の表示漢字コードがSJISなので全て文字化けする。どうするのがエレガントな解か?当面、解凍して出来たcreatezip.sqlはSJISにコード変換して使用。取り敢えず作成したtemplate1データベースしかないので(こうするのがいいのかどうか分からないが)
とすることで、正しい応答
DROP TABLE
CREATE TABLE
CREATE INDEX
CREATE INDEX
GRANT
が得られたが、ここへ行くまでにかなりの試行錯誤がある。
- 「nobody」などというユーザはないというエラーが出たので、当面postgresユーザを指定しておいた(この辺別途設計しないといけないかも知れない)。
- 最初データファイルzipaddrs.eucもSJISに変換して読み込ませようとしていたが、コードの問題で(漢字コードの途中に改行と解釈されるものが混在してるらしく)、元のEUC-JPのファイルを読み込ませることに戻した。
- tyouiki(町域)カラムが長すぎるとのエラー。createzip.sqlには44文字と定義されていたが、これを60文字に変更した。
- 「121062」行目に2つ目のカラムがないとのエラー。調べると、データファイルzipaddrs.eucは122061行しかない。ということは行末(ファイル末)のコードの問題である可能性が高いため、一旦viで開いて最終行を追加して消して上書き保存した。
createzip.sqlのオリジナルからのdiff(主なもの;これで良いのかどうかはよく分からない)
- tyouiki varchar(44)
- tyouiki varchar(60)
- grant select on zipaddrs to nobody;
- grant select on zipaddrs to postgres;
テーブルが作成されいているかどうかの確認も
$ psql -U postgres template1
Welcome to psql 7.4.5, the PostgreSQL interactive terminal.Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quittemplate1=# select * from zipaddrs where zipcode = '158-0095';
zipcode | todouhuken | sikutyouson | tyouiki
- -
158-0095 | ナ・ナヤ | タ、ナトテォカ・ | タ・ナト
(1 row)template1=# \q
のように出来た。但し、文字化け。