RSS Git Download  Clone
Raw Blame History
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);
	}
}

sub rebuild_tables_asMyISAM {
	my $self = shift;
	my $tbl  = shift; # warn $tbl;    
    
    $self->rebuild($tbl); # just forward to rebuild() - make decision there	
}

sub convert_to_InnoDB {
	my $self = shift;
	my $tbl  = shift; # warn $tbl;    
	if ($ENV{HOST} && $ENV{HOST} eq 'hmds-lth') {
		my $dbh = $self->db->{dbh4};
		$dbh->do( qq!ALTER TABLE $tbl ENGINE="InnoDB"! );
	}
}

sub rebuild {
	my $self = shift;
	my $tbl  = shift; # warn $tbl;

    my $dbh = $self->db->{dbh4};

	my $sql = $self->sql->{table}->{$tbl};
	$sql =~ s/InnoDB/MyISAM/ if ($ENV{HOST} && $ENV{HOST} eq 'hmds-lth'); 
    $dbh->do( qq!DROP TABLE IF EXISTS `$tbl`! ); 
	$dbh->do( $sql );
}

sub clear_table {
	my ($self, $table) = @_;

    my $dbh = $self->db->{dbh4};

	$dbh->do( qq!TRUNCATE TABLE $table!);
	if ($ENV{HOST} && $ENV{HOST} eq 'hmds-lth') {
		$dbh->do( qq!ALTER TABLE $table ENGINE="MyISAM"! );
	}
}

1;