X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Fmerge-user;h=e7833595e5b44249f17939a420975c96a3ab8567;hp=4aca9a44f630709f7724b535fd1a5a174374c735;hb=88e9a56677d343392416c262f976f069157b06cb;hpb=b02e2d439440c8069879e87adaacc5d9c9147080 diff --git a/bin/merge-user b/bin/merge-user index 4aca9a44f..e7833595e 100755 --- a/bin/merge-user +++ b/bin/merge-user @@ -10,7 +10,7 @@ $FS::UID::AutoCommit = 0; my ($user, $from_usernum, $to_usernum, $go) = @ARGV; die usage() if not ($user and $from_usernum and $to_usernum); -$DRY_RUN = 0 if $go eq 'go'; +$DRY_RUN = 0 if defined($go) and $go eq 'go'; my $dbh = adminsuidsetup($user); @@ -23,12 +23,19 @@ my $to_user = FS::access_user->by_key($to_usernum) or my $tables = FS::Schema::tables_hashref; foreach my $table (keys %$tables) { - next if $table =~ /^access/; # Don't try to merge these. if( grep /^usernum$/, FS::Record::real_fields($table) ) { + next if $table eq 'access_user'; foreach ($table, "h_$table") { print "$_: "; - my $sql = - "UPDATE $_ SET usernum = $to_usernum WHERE usernum = $from_usernum"; + my $sql; + if( $table =~ /^access_(.*)$/ ) { + print "deleting "; + $sql = "DELETE FROM $_ WHERE usernum = $from_usernum"; + } + else { + print "updating "; + $sql = "UPDATE $_ SET usernum = $to_usernum WHERE usernum = $from_usernum"; + } #print $sql; my $sth = $dbh->prepare($sql); $sth->execute;