print "creating tables...\n";
- $dbh->do( qq{
+ foreach my $sql ( split(/;/, qq{
create table hosts (
ID SERIAL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
);
+ create table backup_parts (
+ id serial,
+ backup_id int references backups(id),
+ part_nr int not null check (part_nr > 0),
+ tar_size bigint not null check (tar_size > 0),
+ size bigint not null check (size > 0),
+ md5 text not null,
+ items int not null check (items > 0),
+ date timestamp default now(),
+ filename text not null,
+ primary key(id)
+ );
+
create table files (
ID SERIAL,
shareID INTEGER NOT NULL references shares(id),
primary key(id)
);
- create table archive_backup (
+ create table archive_parts (
archive_id int not null references archive(id) on delete cascade,
- backup_id int not null references backups(id),
- primary key(archive_id, backup_id)
+ backup_id int not null references backups(id),
+ backup_part_id int not null references backup_parts(id),
+ primary key(archive_id, backup_id, backup_part_id)
);
create table archive_burned (
iso_size bigint default -1
);
- create table backup_parts (
- id serial,
- backup_id int references backups(id),
- part_nr int not null check (part_nr > 0),
- tar_size bigint not null check (tar_size > 0),
- size bigint not null check (size > 0),
- md5 text not null,
- items int not null check (items > 0),
- date timestamp default now(),
- primary key(id)
- );
-
-- report backups and corresponding dvd
-
- create view backups_on_dvds as
- select
- backups.id as id,
- hosts.name || ':' || shares.name as share,
- backups.num as num,
- backups.type as type,
- abstime(backups.date) as backup_date,
- backups.size as size,
- backups.inc_size as gzip_size,
- archive.id as archive_id,
- archive.dvd_nr
- from backups
- join shares on backups.shareid=shares.id
- join hosts on shares.hostid = hosts.id
- left outer join archive_backup on backups.id = archive_backup.backup_id
- left outer join archive on archive_backup.archive_id = archive.id
- where backups.parts > 0 and size > 0
- order by backups.date
- ;
- });
+--
+-- create view backups_on_dvds as
+-- select
+-- backups.id as id,
+-- hosts.name || ':' || shares.name as share,
+-- backups.num as num,
+-- backups.type as type,
+-- abstime(backups.date) as backup_date,
+-- backups.size as size,
+-- backups.inc_size as gzip_size,
+-- archive.id as archive_id,
+-- archive.dvd_nr
+-- from backups
+-- join shares on backups.shareid=shares.id
+-- join hosts on shares.hostid = hosts.id
+-- left outer join archive_backup on backups.id = archive_backup.backup_id
+-- left outer join archive on archive_backup.archive_id = archive.id
+-- where backups.parts > 0 and size > 0
+-- order by backups.date
+-- ;
+ })) {
+ warn "SQL: $sql\n";
+ $dbh->do( $sql );
+ }
print "creating indexes: ";
$dbh->do( qq{ CREATE SEQUENCE $seq } );
}
-=for later
-
print " creating triggers ";
$dbh->do( <<__END_OF_TRIGGER__ );
__END_OF_TRIGGER__
-=cut
-
print "...\n";
$dbh->commit;
print $share_header unless $opt->quiet;
status "$hostname $backupNum $share_header";
- my $files = BackupPC::View->new($bpc, $hostname, \@backups, { only_first => 1 });
+ my $files = BackupPC::View->new($bpc, $hostname, \@backups, { only_increment => 1 });
foreach my $share ($files->shareList($backupNum)) {
if ($nf + $nd > 0) {
status "$hostname $backupNum full-text | indexing";
- eval { hest_update($hostID, $shareID, $backupNum) };
- warn "ERROR: $@" if $@;
+ #eval { hest_update($hostID, $shareID, $backupNum) };
+ #warn "ERROR: $@" if $@;
+ hest_update($hostID, $shareID, $backupNum);
+ # eval breaks our re-try logic
}
}