diff --git a/lib/WebGUI/Mailing.pm b/lib/WebGUI/Mailing.pm
index c823e6c..d11967b 100644
--- a/lib/WebGUI/Mailing.pm
+++ b/lib/WebGUI/Mailing.pm
@@ -48,7 +48,7 @@ sub crud_definition {
my $definition = $class->SUPER::crud_definition( $session );
- $definition->{ tableName } = 'WGMailing';
+ $definition->{ tableName } = 'Mailing';
$definition->{ tableKey } = 'mailingId';
$definition->{ sequenceKey } = 'issueId';
@@ -143,7 +143,7 @@ sub getStatusLine {
my $db = $self->session->db;
my $sth = $db->read(
- 'select status, isTest, count( status ) as cnt from WGMailing_queue where mailingId=? group by status,isTest',
+ 'select status, isTest, count( status ) as cnt from Mailing_email where mailingId=? group by status,isTest',
[
$self->getId,
],
diff --git a/lib/WebGUI/Mailing/Bounce.pm b/lib/WebGUI/Mailing/Bounce.pm
index bd83edb..7a4fe33 100644
--- a/lib/WebGUI/Mailing/Bounce.pm
+++ b/lib/WebGUI/Mailing/Bounce.pm
@@ -58,7 +58,7 @@ sub www_bounceReport {
my $self = shift;
my $session = $self->session;
my $i18n = WebGUI::International->new( $session, 'MailingManager' );
- my $sth = $session->db->read( 'select distinct sentTo from WGMailing_queue where sentTo is not null' );
+ my $sth = $session->db->read( 'select distinct sentTo from Mailing_email where sentTo is not null' );
my $output = '
| '.$i18n->get('email').' | '.$i18n->get('bounce score').' |
';
while ( my ($email) = $sth->array ) {
diff --git a/lib/WebGUI/Mailing/Email.pm b/lib/WebGUI/Mailing/Email.pm
index 6c70599..92ece82 100644
--- a/lib/WebGUI/Mailing/Email.pm
+++ b/lib/WebGUI/Mailing/Email.pm
@@ -14,7 +14,7 @@ sub crud_definition {
my $definition = $class->SUPER::crud_definition( $session );
- $definition->{ tableName } = 'WGMailing_queue';
+ $definition->{ tableName } = 'Mailing_email';
$definition->{ tableKey } = 'mailId';
$definition->{ sequenceKey } = 'mailingId';
diff --git a/sbin/install_newsletter.pl b/sbin/install_newsletter.pl
index b7f8bf4..7de8939 100644
--- a/sbin/install_newsletter.pl
+++ b/sbin/install_newsletter.pl
@@ -34,7 +34,6 @@ renamespaceTemplates( $session );
finish($session);
-
#----------------------------------------------------------------------------
sub installMailableAspectTable {
my $session = shift;
@@ -152,8 +151,20 @@ sub addRecentColumnToNewsletterCollection {
#----------------------------------------------------------------------------
sub installMailingTables {
my $session = shift;
+ my $db = $session->db;
print "\tInstalling Mailing table...";
+ # Remname tables from a previous (bad) name to a new (good) one.
+ # Must be done before the crudCreateOrUpdate calls to prevent creation of stale tables.
+ my @tables = $db->buildArray( 'show tables' );
+ if ( grep { $_ eq 'WGMailing' } @tables ) {
+ $db->write( 'rename table WGMailing to Mailing' );
+ }
+ if ( grep { $_ eq 'WGMailing_queue' } @tables ) {
+ $db->write( 'rename table WGMailing_queue to Mailing_email' );
+ }
+
+ # Create or update Mailing tables.
use WebGUI::Mailing;
use WebGUI::Mailing::Email;