add shareID to backups and fixed commit mess. Now update correctly continues
authordpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Sun, 21 Aug 2005 23:25:47 +0000 (23:25 +0000)
committerdpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Sun, 21 Aug 2005 23:25:47 +0000 (23:25 +0000)
from last aborted backup and share.

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@65 8392b6e1-25fa-0310-8288-cc32f8e212ea

bin/BackupPC_updatedb

index 8885002..9f45641 100755 (executable)
@@ -95,11 +95,12 @@ if ($opt{c}) {
                        num     INTEGER         NOT NULL,
                        date    integer         NOT NULL, 
                        type    CHAR(4)         not null,
-                       PRIMARY KEY(hostID, num) 
+                       shareID integer         not null references shares(id),
+                       PRIMARY KEY(hostID, num, shareID) 
                );            
        });
 
-       do_index('backups_hostid,num_unique');
+       #do_index('backups_hostid,num_unique');
 
        $dbh->do(qq{
                create table dvds (
@@ -180,15 +181,15 @@ $sth->{hosts_by_name} = $dbh->prepare(qq{
 SELECT ID FROM hosts WHERE name=?
 });
 
-$sth->{backups_broj} = $dbh->prepare(qq{
+$sth->{backups_count} = $dbh->prepare(qq{
 SELECT COUNT(*)
 FROM backups
-WHERE hostID=? AND num=?
+WHERE hostID=? AND num=? AND shareid=?
 });
 
 $sth->{insert_backups} = $dbh->prepare(qq{
-INSERT INTO backups (hostID, num, date, type)
-VALUES (?,?,?,?)
+INSERT INTO backups (hostID, num, date, type, shareid)
+VALUES (?,?,?,?,?)
 });
 
 $sth->{insert_files} = $dbh->prepare(qq{
@@ -246,34 +247,40 @@ foreach my $host_key (keys %{$hosts}) {
                        fmt_time($backup->{endTime} - $backup->{startTime}),
                        ")\n";
 
-               $sth->{backups_broj}->execute($hostID, $backupNum);
-               my ($broj) = $sth->{backups_broj}->fetchrow_array();
-               next if ($broj > 0);
-
-               $sth->{insert_backups}->execute(
-                       $hostID,
-                       $backupNum,
-                       $backup->{'endTime'},
-                       $backup->{'type'}
-               );
-               $dbh->commit();
-
                my $files = BackupPC::View->new($bpc, $hostname, \@backups, 1);
                foreach my $share ($files->shareList($backupNum)) {
 
                        my $t = time();
 
-                       print strftime($t_fmt,localtime())," ", $share;
                        $shareID = getShareID($share, $hostID, $hostname);
                
+                       $sth->{backups_count}->execute($hostID, $backupNum, $shareID);
+                       my ($count) = $sth->{backups_count}->fetchrow_array();
+                       # skip if allready in database!
+                       next if ($count > 0);
+
+                       # dump some log
+                       print strftime($t_fmt,localtime())," ", $share;
+
                        my ($f, $nf, $d, $nd) = recurseDir($bpc, $hostname, $files, $backupNum, $share, "", $shareID);
+
+                       $sth->{insert_backups}->execute(
+                               $hostID,
+                               $backupNum,
+                               $backup->{'endTime'},
+                               $backup->{'type'},
+                               $shareID
+                       );
+
+                       print " commit";
+                       $dbh->commit();
+
                        my $dur = (time() - $t) || 1;
                        printf(" %d/%d files %d/%d dirs [%.2f/s dur: %s]\n",
                                $nf, $f, $nd, $d,
                                ( ($f+$d) / $dur ),
                                fmt_time($dur)
                        );
-                       $dbh->commit();
                }
 
        }