人気記事

広告

記事検索

MOVION.netについて

WEB技術に関することや、気になるWEBサイトなどについて個人的なメモを残すためのブログです。

その他運営サイト

2008年03月12日(水)

指定ディレクトリ以下のファイル数を調べる[Linux][find]

例として、
/home/takahashi/www/
以下のファイル数を調べるコマンド

  1. find /home/takahashi/www/ -type f | wc -l
2008年03月11日(火)

PostgreSQLのエクスポートデータをMySQLにインポートする

も参照してください。(2008/04/16追記)

最近PostgreSQLにはご無沙汰してますが、
PostgreSQLのエクスポートデータをMySQLにインポートしてみました。
かつ、微妙にPostgreSQLとMySQLのカラムが異なってる場合の手順です。

PostgreSQLの以下のテーブルのデータをエクスポートし、

  1. CREATE TABLE items (
  2. item_id SERIAL PRIMARY KEY,
  3. name VARCHAR(50),
  4. price INTEGER,
  5. color VARCHAR(20),
  6. createtime timestamp NOT NULL DEFAULT current_timestamp,
  7. delete_flag CHAR(1)
  8. );

PostgreSQLでエクスポートしたファイルをMySQLの以下のテーブルにインポートします。
status_flagカラムが追加されています。

  1. CREATE TABLE items (
  2. item_id INTEGER NOT NULL AUTO_INCREMENT,
  3. name VARCHAR(50),
  4. price INTEGER,
  5. color VARCHAR(20),
  6. status_flag INTEGER,
  7. createtime DATEMTIME
  8. delete_flag CHAR(1)
  9. );

まずは、PostgreSQLのデータをtsvファイルでエクスポートします。

  1. su postgres
  2. psql  sampledb
  3. —-
  4. sampledb=#COPY items TO ‘/home/postgres/items.tsv’;
  5. —-

次に、MySQLでインポートします。

  1. su takahashi
  2. mysql -u root -p sampledb
  3. —-
  4. mysql>LOAD DATA INFILE "/home/postgres/items.tsv" INTO TABLE items FIELDS TERMINATED BY \t (item_id,name,price,color,createtime,delete_flag);
  5. —-

もちろん、元になかったカラムのデータ(ここではstatus_flag)は入りません。
手段は他にもいろいろあると思います。
あと、うまくいかないデータもあるかもしれません。

2008年03月5日(水)

Zend_MailのsetSubjectが僕をいじめる

Zend_MailとSmartyを組み合わせた、メール送信のクラスを作ってみたのですが、
どうも長いタイトルのメールを送ると、タイトルの途中に「?」が入るからソースを見てみたら。

  1.    public function setSubject($subject)
  2.     {
  3.         if ($this->_subject === null) {
  4.             $subject = strtr($subject,"\r\n\t",‘???’);
  5.             $this->_subject = $this->_encodeHeader($subject);
  6.             $this->_storeHeader(‘Subject’, $this->_subject);
  7.         } else {
  8.             throw new Zend_Mail_Exception(‘Subject set twice’);
  9.         }
  10.         return $this;
  11.     }

って、おい。

そりゃ「?」になるよ。
ググったら、ふらっとさんのページやいしなお!さんのページに同じことが書かれてました。

_encodeHeaderメソッドとかを見るとやりたいことはわからないではないが、
いずれにしても日本語(に限らないようだけど)送るときに困っちゃいます。

RFCでいうとこの辺か。

RFC 2822 (Internet Message Format)

RFC 2047 (MIME Part Three:Message Header Extensions for Non-ASCII Text)

とりあえず、RFC 2822の「SHOULD be no more than 78 characters」この辺の、”・・べき”は、
見なかったことにして、かつ長すぎる(符号化後の半角換算998文字)タイトルは考慮しないってことで、
いしなお!さんのとこのように、改行は削除する仕様にしちゃいました。