Schemaクラス自動生成スクリプト

テーブル追加したりカラム変更したりするとSchemaクラスを再生成する必要がありますが、ヘルパースクリプトの引数ってしばらく打っていないとすぐ忘れてしまいますね。

特にテーブル構成が固まっていない段階では何度も再生成することになるので、シェルスクリプトにしています。

#!/bin/sh
# /MyApp/script配下で実行

APP_CLASS=`pwd | rev | awk -F/ '{ print $2; }' | rev`
RDBMS="mysql"
DB="databse"
USR="user"
PWD="password"

LOWER=`echo ${APP_CLASS} | tr "[:upper:]" "[:lower:]"`

`pwd`/${LOWER}_create.pl model DBIC DBIC::Schema ${APP_CLASS}::Schema \
create=static DBI:${RDBMS}:${DB} ${USR} ${PWD}

ヘルパースクリプトぽくPerlに書き直してみましたが、別にこれはシェルスクリプトでいいかなという感じですね。

#!/usr/bin/perl
# /MyApp/script配下で実行

use strict;
use warnings;

my $rdbms    = "mysql";
my $database = "myapp";
my $user     = "usr";
my $password = "pwd";

chomp(my $app_class=`pwd | rev | awk -F/ '{ print \$2; }' | rev`);
(my $lower = $app_class) =~ s/(\w+)/\L$1/g;

system("`pwd`/${lower}_create.pl model DBIC DBIC::Schema ${app_class}::Schema \\
         create=static DBI:${rdbms}:${database} ${user} ${password}");

exit 0;