diff options
Diffstat (limited to 'FS/bin/freeside-upgrade')
-rwxr-xr-x | FS/bin/freeside-upgrade | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade index 792b8ba13..b05d6f0a8 100755 --- a/FS/bin/freeside-upgrade +++ b/FS/bin/freeside-upgrade @@ -47,7 +47,7 @@ if (dbdef->table('cust_main')->column('agent_custid')) { if ( $DRY_RUN ) { print - join(";\n", @bugfix, dbdef->sql_update_schema( dbdef_dist, $dbh ) ). ";\n"; + join(";\n", @bugfix, dbdef->sql_update_schema( dbdef_dist(datasrc), $dbh ) ). ";\n"; exit; } else { foreach my $statement ( @bugfix ) { @@ -55,7 +55,7 @@ if ( $DRY_RUN ) { or die "Error: ". $dbh->errstr. "\n executing: $statement"; } - dbdef->update_schema( dbdef_dist, $dbh ); + dbdef->update_schema( dbdef_dist(datasrc), $dbh ); } my $hashref = {}; @@ -64,6 +64,24 @@ $hashref->{debug} = 1 if $DEBUG; print join "\n", prune_applications($hashref); print "\n" if $DRY_RUN; +if ( $dbh->{Driver}->{Name} =~ /^mysql/i ) { + + my $sth = $dbh->prepare( + "SELECT COUNT(*) FROM duplicate_lock WHERE lockname = 'svc_acct'" + ) or die $dbh->errstr; + + $sth->execute or die $sth->errstr; + + unless ( $sth->fetchrow_arrayref->[0] ) { + + $sth = $dbh->prepare( + "INSERT INTO duplicate_lock ( lockname ) VALUES ( 'svc_acct' )" + ) or die $dbh->errstr; + + $sth->execute or die $sth->errstr; + + } +} $dbh->commit or die $dbh->errstr; |