#! /usr/bin/env perl
use strict;
use Getopt::Long;
use Pod::Usage;
use Qudo::Test;
use DBI;

Getopt::Long::GetOptions(
    '--dry_run' => \my $dry_run,
    '--help'    => \my $help,
    '--db=s'    => \my $db,
    '--user=s'  => \my $user,
    '--pass=s'  => \my $pass,
    '--rdbms=s' => \my $rdbms,
) or pod2usage(2);
Getopt::Long::Configure("bundling");
pod2usage() if $help;
pod2usage() unless $db and $user and $rdbms;

if ($rdbms eq 'mysql') {
    my $dbh = DBI->connect('dbi:mysql:mysql', $user, $pass) or die 'can not connect mysqld';
    $dbh->do('create database '.$db);
}

my $dbh = DBI->connect('dbi:'.$rdbms.':'.$db, $user, $pass) or die 'can not connect database';
my $schema = Qudo::Test::load_schema;
for my $sql (@{$schema->{$rdbms}}) {
    if ($dry_run) {
        print $sql,"\n";
    } else {
        $dbh->do($sql);
    }
}

__END__
=head1 SYNOPSIS

    --db    database name. ex) qudo_test
    --user  db user        ex) root
    --pass  db password.
    --rdbms database kind  ex) mysql SQLite
    --help  disp help.

=cut
