#!/usr/bin/perl use strict; use warnings; use DBD::PgLite::MirrorPgToSQLite qw(pg_to_sqlite); use File::Spec::Functions; use Module::CPANTS::Schema; use Module::CPANTS::Kwalitee; use Module::CPANTS::ProcessCPAN; use Module::CPANTS::ProcessCPAN::ConfigData; my $home=Module::CPANTS::ProcessCPAN::ConfigData->config('home'); my $outpath=shift(@ARGV) || catdir($home,'root','static'); my @now=localtime(time); my $now=sprintf("%02d_%02d_%02d", $now[5] % 100,@now[4, 3]); my $mcp=bless {},'Module::CPANTS::ProcessCPAN'; my $db=$mcp->db; my %dumps=( all => [[qw(author kwalitee dist prereq modules uses)],[]], # kwalitee => [[qw(tables)][qw(views)]]; ); foreach my $name (keys %dumps) { my $dbfile = catfile($outpath,'cpants_'.$name.'_'.$now.'.db'); my $current = catfile($outpath,'cpants_'.$name.'.db'); my $tables=$dumps{$name}; pg_to_sqlite( sqlite_file => $dbfile, pg_dbh => $db->storage->dbh, tables => $tables->[0], indexes => 1, verbose => 1, cachedir => 0, #snapshot => 1, ); # compress! system("gzip",$dbfile); rename($dbfile.'.gz',$current.'.gz'); }