DBIC で生の SQL を実行したいときは $storage->dbh_do() を使えば良いということを知った。
my @stuff = $schema->storage->dbh_do( sub { my ($storage, $dbh, @args) = @_; $dbh->do("DROP TABLE authors"); }, @column_list );
http://search.cpan.org/~frew/DBIx-Class-0.08114/lib/DBIx/Class/Storage/DBI.pm#dbh_do
もういっこ $storage->dbh() てのもあり、こちらは見た通り $dbh を返す。これをふつうに DBI を扱うときのように使ってもいけるようだ。
http://search.cpan.org/~frew/DBIx-Class-0.08114/lib/DBIx/Class/Storage/DBI.pm#dbh
ただ、こちらは接続していることを保証するとかで、ちょっとコストがかかる場合があるらしい・・・という風に読めたのだけど、実際のトコロどっちを使うのが適切なんだろう?
わざわざ dbh_do() なんてメソッドを用意しているってことは、これで済むならばこれを使えよ、ということなのかな。