マイグレーションひっかかった

RailsのMigrationで

t.column :body, :text, :null => false

みたいに書いてたらdb:migrateで怒られた。

Mysql::Error: #42000BLOB/TEXT

おおっと。

というわけで、こう書いてあった。
http://dev.mysql.com/doc/refman/4.1/ja/blob.html

BLOB 型と TEXT 型のカラムには、DEFAULT 値は設定できない。

勝手にschema.rbに:default => ''ってなってたし、どうやらtext型を指定するとdefaultが付いちゃって、ミスるみたい?ってこれはMySQL4.1だから5.0系とは違う可能性もあるけど。


でも、これってWindows版だけじゃないかな。Ubuntu上では同じのが通ったんだがー。

追記

わかった。migrate走らせてる時はdefaultのSQL吐かないけど、testのときに吐いてるんだ。Windows版とか関係ない。railsの挙動だ。

追記

いや、railsの挙動と言うかfixtureでなにも指定していないプロパティについて空のままテストが始まるか''の様に空の文字列にしてテストするかがOSによって違った。nullが許可されていないプロパティについてはちゃんと値を入れたらちゃんとテスト通る。