Skip to content

Commit

Permalink
Add exclude partitions and tables flags
Browse files Browse the repository at this point in the history
  • Loading branch information
roa committed May 6, 2015
1 parent 17b2645 commit 75474ad
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 56 deletions.
1 change: 1 addition & 0 deletions Build.PL
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ my $build = Module::Build->new(
'DateTime' => 0,
'DateTime::Format::Strptime' => 0,
'Parallel::ForkManager' => 0,
'Term::ProgressBar' => 0,
},
script_files => [ 'bin/dump.pl', 'bin/dump93.pl', 'bin/restore.pl', 'bin/restore93.pl', 'bin/diff.pl', 'bin/analyze.pl' ],
);
Expand Down
11 changes: 8 additions & 3 deletions MYMETA.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Robert Abraham <[email protected]>"
],
"dynamic_config" : 0,
"generated_by" : "Module::Build version 0.4003, CPAN::Meta::Converter version 2.142690",
"generated_by" : "Module::Build version 0.4205",
"license" : [
"mit"
],
Expand All @@ -16,7 +16,7 @@
"prereqs" : {
"build" : {
"requires" : {
"Module::Build" : "0.38"
"Module::Build" : 0.38
}
},
"runtime" : {
Expand All @@ -25,16 +25,21 @@
"DateTime" : "0",
"DateTime::Format::Strptime" : "0",
"File::Path" : "0",
"File::Rsync" : "0",
"Getopt::Long" : "0",
"Moo" : "0",
"Parallel::ForkManager" : "0"
"Parallel::ForkManager" : "0",
"Term::ProgressBar" : "0"
}
}
},
"provides" : {
"PostgresTools" : {
"file" : "lib/PostgresTools.pm"
},
"PostgresTools::Archive" : {
"file" : "lib/PostgresTools/Archive.pm"
},
"PostgresTools::Database" : {
"file" : "lib/PostgresTools/Database.pm"
},
Expand Down
50 changes: 28 additions & 22 deletions bin/dump.pl
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,23 @@
my $jobs = 1;
my $offset = 0;
my $rsync = 0;
my $exclude_partitions;
my $exclude_tables;

GetOptions(
"host|h=s" => \$host,
"user|U=s" => \$user,
"db=s" => \$db,
"base_dir=s" => \$base_dir,
"dst=s" => \$dst,
"jobs|j=i" => \$jobs,
"offset|o=i" => \$offset,
"pretend|p" => \$pretend,
"verbose|v" => \$verbose,
"progress" => \$progress,
"rsync" => \$rsync,
"host|h=s" => \$host,
"user|U=s" => \$user,
"db=s" => \$db,
"base_dir=s" => \$base_dir,
"dst=s" => \$dst,
"jobs|j=i" => \$jobs,
"offset|o=i" => \$offset,
"pretend|p" => \$pretend,
"verbose|v" => \$verbose,
"progress" => \$progress,
"rsync" => \$rsync,
"exclude_tables" => \$exclude_tables,
"exclude_partitions" => \$exclude_partitions,
);

unless ( defined($db) ) {
Expand All @@ -53,17 +57,19 @@
}

my $tools = PostgresTools->new(
host => $host,
user => $user,
db => $db,
base_dir => $base_dir,
pretend => $pretend,
verbose => $verbose,
offset => $offset,
forks => $jobs,
progress => $progress,
rsync => $rsync,
dst => $dst,
host => $host,
user => $user,
db => $db,
base_dir => $base_dir,
pretend => $pretend,
verbose => $verbose,
offset => $offset,
forks => $jobs,
progress => $progress,
rsync => $rsync,
dst => $dst,
exclude_partitions => $exclude_partitions,
exclude_tables => $exclude_tables,
);

$tools->dump;
64 changes: 33 additions & 31 deletions lib/PostgresTools.pm
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,35 @@ use PostgresTools::Archive;
use PostgresTools::Database;
use PostgresTools::Date;

has user => ( is => 'rw' );
has user2 => ( is => 'rw' );
has host => ( is => 'rw' );
has host2 => ( is => 'rw' );
has db => ( is => 'ro', required => 1 );
has db2 => ( is => 'ro' );
has dbh => ( is => 'rw' );
has dbh2 => ( is => 'rw' );
has date => ( is => 'rw' );
has base_dir => ( is => 'rw' );
has dump_dir => ( is => 'rw' );
has forks => ( is => 'rw' );
has offset => ( is => 'rw' );
has exclude => ( is => 'rw' );
has excludes => ( is => 'rw' );
has pretend => ( is => 'rw' );
has verbose => ( is => 'rw' );
has progress => ( is => 'rw' );
has iter => ( is => 'rw' );
has bar => ( is => 'rw' );
has count => ( is => 'rw' );
has restore => ( is => 'rw' );
has schema => ( is => 'rw' );
has quiet => ( is => 'rw' );
has rsync => ( is => 'rw' );
has dst => ( is => 'rw' );
has keep_days => ( is => 'rw' );
has user => ( is => 'rw' );
has user2 => ( is => 'rw' );
has host => ( is => 'rw' );
has host2 => ( is => 'rw' );
has db => ( is => 'ro', required => 1 );
has db2 => ( is => 'ro' );
has dbh => ( is => 'rw' );
has dbh2 => ( is => 'rw' );
has date => ( is => 'rw' );
has base_dir => ( is => 'rw' );
has dump_dir => ( is => 'rw' );
has forks => ( is => 'rw' );
has offset => ( is => 'rw' );
has exclude => ( is => 'rw' );
has exclude_partitions => ( is => 'rw' );
has exclude_tables => ( is => 'rw' );
has excludes => ( is => 'rw' );
has pretend => ( is => 'rw' );
has verbose => ( is => 'rw' );
has progress => ( is => 'rw' );
has iter => ( is => 'rw' );
has bar => ( is => 'rw' );
has count => ( is => 'rw' );
has restore => ( is => 'rw' );
has schema => ( is => 'rw' );
has quiet => ( is => 'rw' );
has rsync => ( is => 'rw' );
has dst => ( is => 'rw' );
has keep_days => ( is => 'rw' );

sub BUILD {
my $self = shift;
Expand Down Expand Up @@ -122,8 +124,8 @@ sub dump93 {
sub dump {
my $self = shift;
$self->_make_base;
$self->_dump_partitions;
$self->_dump_tables;
$self->_dump_partitions unless $self->exclude_partitions;
$self->_dump_tables unless $self->exclude_tables;
$self->_dump_sequences;
if ( $self->rsync ) {
$self->archive;
Expand Down Expand Up @@ -160,7 +162,7 @@ sub restore_dump {
my @to_restore = glob "$self->{dump_dir}/$self->{restore}/*";
say "restoring items..." if $self->progress;
$self->_setup_progress( scalar @to_restore );
my $pm = new Parallel::ForkManager( $self->forks );
my $pm = Parallel::ForkManager->new( $self->forks );
$pm->run_on_finish( sub { $self->_update_progress } );

for my $item (@to_restore) {
Expand Down Expand Up @@ -311,7 +313,7 @@ sub _dump_items {
my $self = shift;
my $items = shift;
$self->_setup_progress( scalar @{$items} );
my $pm = new Parallel::ForkManager( $self->forks );
my $pm = Parallel::ForkManager->new( $self->forks );
$pm->run_on_finish( sub { $self->_update_progress } );

for my $item (@$items) {
Expand Down

0 comments on commit 75474ad

Please sign in to comment.