X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FBackPAN%2FIndex.pm;h=6b7d0e88f18d71d6281d5e466954e89b4f5c5c95;hb=c4e00aced2b6d3754c5d3c5e20d832d986a7aed5;hp=faf439a573dbd8d5c6486536fc44c3c43988dcdf;hpb=b67ffc2edcc6c4685a9e7c1e8f7be131d487626b;p=catagits%2FBackPAN-Web.git diff --git a/lib/BackPAN/Index.pm b/lib/BackPAN/Index.pm index faf439a..6b7d0e8 100644 --- a/lib/BackPAN/Index.pm +++ b/lib/BackPAN/Index.pm @@ -67,7 +67,7 @@ sub _dbh { sub _log { my $self = shift; return unless $self->debug; - print STDERR @_, "\n"; + print STDOUT @_, "\n"; } sub _update_database { @@ -96,8 +96,6 @@ sub _update_database { $should_update_db = 1 if $db_mtime < $archive_mtime; } - unlink $db_file if -e $db_file and $should_update_db; - $self->schema( BackPAN::Index::Schema->connect("dbi:SQLite:dbname=$db_file") ); return unless $should_update_db; @@ -108,10 +106,6 @@ sub _update_database { $self->_setup_database; - $should_update_db = 1 if $self->_database_is_empty; - - return unless $should_update_db; - my $dbh = $self->_dbh; $self->_log("Populating database..."); @@ -273,10 +267,16 @@ CREATE TABLE IF NOT EXISTS dists ( ) SQL ); + my %delete_for = ( + files => 'DELETE FROM files', + releases => 'DELETE FROM releases', + dists => 'DELETE FROM dists', + ); my $dbh = $self->_dbh; - for my $sql (values %create_for) { - $dbh->do($sql); + for my $table_name (keys %create_for) { + $dbh->do($create_for{$table_name}); + $dbh->do($delete_for{$table_name}); } $self->schema->rescan; @@ -367,7 +367,7 @@ sub _backpan_index_has_changed { $self->_backpan_index_file->touch; my(undef, undef, $remote_mod_time) = head($self->backpan_index_url); - return $remote_mod_time > $local_mod_time; + return defined $remote_mod_time && $remote_mod_time > $local_mod_time; }