package Role::RebuildTables;
use Moose::Role;
use Data::Dumper;
sub rebuild_tables {
my $self = shift;
my $table = shift; # scalar or arrayref
if ( ref $table eq 'ARRAY' ) {
$self->rebuild($_) foreach @$table;
}
else {
$self->rebuild($table);
}
}
# not required anymore - fixed SuSE performance issue now
sub rebuild_tables_asMyISAM {
my $self = shift;
my $tbl = shift; # warn $tbl;
$self->rebuild($tbl); # just forward to rebuild()
=begin
my $dbh = $self->db->{dbh4};
$dbh->do( qq!DROP TABLE IF EXISTS `$tbl`! );
my $sql = $self->sql->{table}->{$tbl};
$sql =~ s/InnoDB/MyISAM/;
$dbh->do( $sql );
=cut
}
# not required anymore - fixed SuSE performance issue now
sub convert_to_InnoDB {
my $self = shift;
my $tbl = shift; # warn $tbl;
=begin
my $dbh = $self->db->{dbh4};
$dbh->do( qq!ALTER TABLE $tbl ENGINE="InnoDB"! );
=cut
}
sub rebuild {
my $self = shift;
my $tbl = shift; # warn $tbl;
my $dbh = $self->db->{dbh4};
$dbh->do( qq!DROP TABLE IF EXISTS `$tbl`! );
$dbh->do( $self->sql->{table}->{$tbl} );
}
sub clear_table {
my ($self, $table) = @_;
my $dbh = $self->db->{dbh4};
$dbh->do( qq!TRUNCATE TABLE $table!);
# $dbh->do( qq!ALTER TABLE $table ENGINE="MyISAM"! ); # fixed SuSE performance issue now
}
1;