something to wipe the CVV from very large databases
authorivan <ivan>
Fri, 17 Apr 2009 23:30:57 +0000 (23:30 +0000)
committerivan <ivan>
Fri, 17 Apr 2009 23:30:57 +0000 (23:30 +0000)
bin/fs-migrate-cust_tax_exempt
bin/h_cust_main-wipe_paycvv [new file with mode: 0755]

index ede80b0..35c74ff 100755 (executable)
@@ -23,7 +23,7 @@ my $fuz = 7; #seconds
  #site-specific rewrites
 my %rewrite = (
   #cust_tax_exempt.exemptnum => { 'field' => 'newvalue', ... },
-    '23' => { month=>10, year=>2005, invnum=>1640 },
+#    '23' => { month=>10, year=>2005, invnum=>1640 },
 
     #etc.
 );
diff --git a/bin/h_cust_main-wipe_paycvv b/bin/h_cust_main-wipe_paycvv
new file mode 100755 (executable)
index 0000000..d34c15f
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+
+use strict;
+use FS::UID qw(adminsuidsetup dbh);
+use FS::Record; #buh?
+
+my $user = shift or die 'usage';
+adminsuidsetup $user;
+
+while (1) {
+
+  my $sql = ' UPDATE h_cust_main SET paycvv = NULL
+                WHERE historynum IN ( SELECT historynum FROM h_cust_main
+                                        WHERE paycvv IS NOT NULL LIMIT 8192 )';
+#                                        WHERE paycvv IS NOT NULL LIMIT 1 )';
+
+  my $sth = dbh->prepare($sql) or die dbh->errstr;
+
+  print '.'; $|=1;
+
+  my $rv = $sth->execute;
+
+  dbh->commit or die dbh->errstr;
+
+  last if $rv == 0;
+
+}
+
+print "\n";
+