この前、書いた
- Teng::Schema::DeclareにPlugin機構があったらいいのにって妄想してた - $shibayu36->blog;
- Re:Re:Teng::Schema::DeclareにPlugin機構があったらいいのにって妄想してた - $shibayu36->blog;
ですが、Teng::Schema::Declare::Columns::DateTimeとしてちゃんとモジュール化してみました。CPANにはまだ上げてないです。もうちょっと様子見て、大丈夫そうならあげようかなって考えてます。あと、名前をどうしようか迷ってます。
Repository
githubに置いてあります。
https://github.com/shibayu36/p5-Teng-Schema-Declare-Columns-DateTime
How to use
Teng::Schema::Declareと同時に使うとtable定義内でdatetime_columnsが使えるようになります。datetime_columnsとして指定したcolumnはDateTimeオブジェクトとしてinflate/deflateされるようになります。今のところ、DateTime::Format::MySQLでformatされます。スキーマ定義は以下のとおり。
package MyDB::Schema; use strict; use warnings; use Teng::Schema::Declare; use Teng::Schema::Declare::Columns::DateTime; table { name "sample"; pk "id"; columns qw( id name created_at updated_at ); datetime_columns qw(created_at updated_at); }; 1;
最後に
とりあえず、Schema定義が簡単にできるようにしたいということで今回のモジュールを作ってみました。まだFormat方式を指定できなかったり、名前をどうしようか決めてなかったり、といった問題があるので、CPANには上げてないです。
なにか指摘などあれば@shiba_yu36までお願いします。