PR

[CakePHP] 郵便番号データ自動インポートとエラー

ひょんなことから CakePHPでスピード開発:郵便番号データ自動インポート という記事を見つけた。

2008 年の記事だが、CakePHP 1.3.6 で動作した。動作したのだが、Shell に関してはどうも1.3.8 はうまくいかない。それまで順調に動作していたものも Error: Class ZipShell could not be loaded. となってしまう。見つけたものはShell だから、本体は1.3.8 で、Shell は1.3.6 で動作させることにした。

1.3.6 では Error: Missing database table ‘テーブル名’ for model ‘モデル名’ となってしまった。調べたところ、これは/app/tmp/cache/配下のキャッシュを消すことで直った。

ずいぶん遠回りしてしまった。

スポンサードリンク

%/home/***/cake136/cake/console/cake zip -app /home/***/www/www.***.jp/app/

Welcome to CakePHP v1.3.6 Console
---------------------------------------------------------------
App : app
Path: /home/***/www/www.***.jp/app
---------------------------------------------------------------
--2011-05-06 23:01:41--  http://www.post.japanpost.jp/zipcode/dl/oogaki/lzh/ken_all.lzh
Resolving www.post.japanpost.jp... 122.215.192.22
Connecting to www.post.japanpost.jp|122.215.192.22|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1735845 (1.7M) [application/lzh]
Saving to: `STDOUT'

100%[======================================>] 1,735,845   3.51M/s   in 0.5s

ken_all.csv     - Melting  :  ..................................................ken_all.csv     - Melting  :  ooooooooooooooooooooooooooooooooooooooooooooooooooken_all.csv     - Melted
2011-05-06 23:01:42 (3.51 MB/s) - written to stdout [1735845/1735845]

Killed


さくらインターネットで動作させたところ、レコードに挿入するのにずいぶん時間がかかった。そのため、コンソールから実行しても、およそ30分後にKill された。

※元から動作していたものが1.3.8 で Error: Class ZipShell could not be loaded. となる問題は未解決
※Error: Class ZipShell could not be loaded. 便宜上の表記で、実際のClass 名は異なる

参考文献

  • CakePHPでいわれのない「Missing database table」エラーを直すには | 1000g
  • CakePHP bake Error: Missing database table ‘テーブル名’ for model ‘モデル名’ – 幕張システム物語
  • CakePHPでスピード開発:郵便番号データ自動インポート

コメント