summaryrefslogtreecommitdiff
path: root/FS/bin
diff options
context:
space:
mode:
authorivan <ivan>2007-10-28 12:51:30 +0000
committerivan <ivan>2007-10-28 12:51:30 +0000
commitdc39152e4b1b881f0115aa5cbe42fbf48a71e5c5 (patch)
tree2f9b364fe9326e92915fbcdc701a156f102a2245 /FS/bin
parent556cefb34ed648303951009e3bec919e18532bed (diff)
finish mysql locking workaround
Diffstat (limited to 'FS/bin')
-rwxr-xr-xFS/bin/freeside-upgrade22
1 files changed, 20 insertions, 2 deletions
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index e5410c2e9..02a615a68 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -56,7 +56,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 ) {
@@ -64,7 +64,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 = {};
@@ -73,6 +73,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;