#!/usr/bin/perl use DBI; use Carp; use POP::Environment; use POP::Schema_parser; my $dsn = "dbi:Sybase:server=$POP_DB_SERVER;database=$POP_DB_DB"; my $dbh = DBI->connect($dsn, $POP_DB_USER, $POP_DB_PASSWD, { RaiseError => 1 }) or croak "Couldn't connect to [$dsn]: $DBI::errstr"; my $parse = new POP::Schema_parser; $parse->parse(\*STDIN); unless (@ARGV) { @ARGV = keys %$parse } foreach my $schema (@ARGV) { eval { my @tables = map {$_->{'sql'}} grep {$_->{'type'} eq 'TABLE'} @{$parse->{$schema}}; for (@tables) { /^create table (.*)/ or croak "Syntax Error [$_]"; $dbh->do("truncate table $1"); } }; if ($@) { print STDERR $@ } } $dbh->disconnect;