Engineer as a Lifestyle @tenkoma このページをアンテナに追加 RSSフィード Twitter

今……「自分の居場所がない」と強く感じていてーー小さな世界に閉じこもっている人がいたら聞いてください それこそが外に飛び出す原動力です -- 新田零次(宇宙兄弟) "宇宙兄弟(10)", 講談社, 2010 過去の。
tenkomaにメールを送る({at}を@に,{dot}を.に換えてください)
 

2011/12/18 Sunday

[]CakePHP 2.0のFixtureでテーブルを生成すると、通常オンメモリにテーブルが生成される

…つまり高速でテストを実行できることが期待でき、HDDSSDにもやさしい

CakePHP2.0からFixtureでMySQLのMEMORYエンジンが使われる場合の回避方法 | tipshare.info

こちらとしてはテスト時にデータベースをオンメモリに生成する方法を探していたのでむしろ好都合だった。

f:id:tenkoma:20111218162821p:image

検証してみたら、そんなことはなかった…まぁ、CakePHP2.0.3ですけど。どういうことか調べてみた。

lib/Cake/TestSuite/Fixture/CakeTestFixture.php 145行目〜
if (empty($this->fields['tableParameters']['engine'])) {
    $canUseMemory = true;
    foreach($this->fields as $field => $args) {

        if (is_string($args)) {
            $type = $args;
        } elseif (!empty($args['type'])) {
            $type = $args['type'];
        } else {
            continue;
        }

        if (in_array($type, array('blob', 'text', 'binary'))) {
        $canUseMemory = false;
            break;
        }
    }

    if ($canUseMemory) {
        $this->fields['tableParameters']['engine'] = 'MEMORY';
    }
}

blob,text,binary型を使ってるとMEMORYエンジンは使われないと。

強制的につくってみよう。

CREATE TABLE text_contain_table (
  id INT AUTO_INCREMENT not null,
  body text not null,
  primary key (id)
) ENGINE=MEMORY;
ERROR 1163 (42000): The used table type doesn't support BLOB/TEXT columns

だめだ。ドキュメントにも書いてあった。

MySQL :: MySQL 5.5 Reference Manual :: 15.4 The MEMORY Storage Engine

MEMORY tables cannot contain BLOB or TEXT columns.

考えてみたら、たった100文字入れられれば十分なカラムだったのでVARCHAR(100)に変更しましたよ

まとめ

テーブルにtext/blob型のカラムが含まれていると、MySQL 5.5 ではMEMORYエンジンを使ったテストはできません

CakePHP 2.0 のテストでオンメモリのテーブルを使いたければ、安易にtext型を使わないで、VARCHAR型にできないか検討しましょう

2011/05/03 Tuesday

[]僕が連休中に読みたい本

プログラマが知るべき97のこと

日本人寄稿者5名のサインが入った貴重な1冊を無くしてしまい、涙目で買った2冊目

現在1/3まで読んでます。連休中で読み終わりたい

プログラマが知るべき97のこと

プログラマが知るべき97のこと

結果

読了。

JavaScriptパターン

現在半分まで読んでいる。

読み終わりたい本その2

JavaScriptパターン ―優れたアプリケーションのための作法

JavaScriptパターン ―優れたアプリケーションのための作法

結果

6章までは読了。6章が濃すぎ。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

じっくりと読んでいきたい

facebookアプリケーション開発ガイド

Facebookアプリが作れるとモテると聞いてやってきました(ぇ

facebookアプリケーション開発ガイド

facebookアプリケーション開発ガイド

2011/03/19 Saturday

[]MacBook Pro に再インストールするソフトウェアメモ

2011/03/12 Saturday

[][]はてな義援金受付から寄付登録しました

昨日の地震はすごかったですね。さすがに机の下に潜りました。。。

電車がとまってしまったので徒歩とタクシーでの帰宅になりました

家では電子レンジが落っこちたくらいで、iMacや液晶テレビが倒れることはありませんでした。電子レンジも落ち方がよかったのかガラスが割れたりすることもなく。

さて、さまざまな機関・企業で義援金の受付がはじまっていますが、日本赤十字社Webサイトは断続的にページが表示できないような状態になっています。はてなでも義援金の受付を行っている、ということなので、ポイントの購入を含めて寄付をしました。いつも利用している・信頼しているサービスから寄付できるというのはとてもいいことですね。

いい機会なのでニュージーランド地震と宮崎鳥インフルエンザにも寄付。ポイントで払うと はてな ポイント支払・受取履歴から参照できます。

f:id:tenkoma:20110312224211p:image

2011/02/25 Friday

[]Redmine 1.1.1 インストール

依存コンポーネントのインストールにかかる部分だけ

sudo aptitude install ruby1.8 rubygems1.8
sudo gem install rack -v=1.0.1
sudo aptitude install rake
sudo gem install -v=0.4.2 i18n
sudo aptitude install libmysqlclient-dev
sudo gem install mysql
sudo gem install passenger
sudo aptitude install libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev
sudo passenger-install-apache2-module
 
カレンダー
<< 2016/05 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31