Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Verify database consistency after merge

by tcf03 (Deacon)
on Oct 17, 2006 at 03:33 UTC ( [id://578649] : note . print w/replies, xml ) Need Help??

in reply to Verify database consistency after merge

you could just get md5s before and after. I do something similar with two databases that are supposed to be the same. Unfortunately one is informix and one is sql server

so I bind the columns to hashes, and feed the hashref and the db connection off to a sub which gives me hashes sums

...snip lots of other code...
use strict; # the obligitory use warnings; # use strict and warnings use Digest::MD5; my $makedigest = \&digestit; my %ldb = $makedigest->(\%lemployee, $lsth); my %rdb = $makedigest->(\%remployee, $rsth);
...snip lots of other code...
sub digestit { my $dbhash = shift; my $sth = shift; my %newdbhash = (); while ( $sth->fetchrow_arrayref ) { my $keydata = Digest::MD5->new; for my $key ( keys %{$dbhash} ) { %{$dbhash}->{$key} = '' unless ( defined(%{$dbhash}->{$key}) ); } $keydata->add(%{$dbhash}->{$_}) for @key; my $digest = $keydata->hexdigest; $newdbhash{$digest} = {%{$dbhash}}; } return %newdbhash; }
My main reason for doing it this way is that I have NO unique key, so I rely on several columns together to provide me with a unique key. Because the above code is incomplete its probably useless, but the concept is there. Once you have your two hashes ( before and after ) compare the sums.
"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
  --Ralph Waldo Emerson