2 ###############################################################################
7 mig-remove - This will remove the specified files from the mig tracking table
8 for the schema pointed to by the MIGSCHEMA environment variable in the
9 PostgreSQL database specified by various PG environment variables. <inhales,
12 You'll need to invoke B<mig-init> prior to using commands like B<mig-remove>
16 B<mig-remove> <file> [file] [...]
20 ###############################################################################
25 HOME PGHOST PGPORT PGUSER PGDATABASE MIGSCHEMA
26 MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR
32 my $mig_bin = "$FindBin::Bin/";
33 use lib "$FindBin::Bin/";
36 pod2usage(-verbose => 2) if ! $ARGV[0] || $ARGV[0] eq '--help';
38 Mig::die_if_no_env_migschema();
39 Mig::die_if_mig_tracking_table_does_not_exist();
41 foreach my $arg (@ARGV) {
42 my $file = abs_path($arg);
43 if ($file =~ /^$MIGBASEWORKDIR/) {
44 remove_this_file($file);
46 print "File falls outside of MIGWORKDIR ($MIGWORKDIR): $file\n";
52 ###############################################################################
54 sub remove_this_file {
56 my $tracked_file_id = Mig::check_for_tracked_file($file,{'allow_missing'=>1});
57 if ($tracked_file_id) {
58 print "removing tracked file: $file\n";
59 my $dbh = Mig::db_connect();
61 DELETE FROM $MIGSCHEMA.tracked_file WHERE id = $tracked_file_id;
62 ") || die "Error deleting from table $MIGSCHEMA.tracked_file (id = $tracked_file_id): $!\n";
63 Mig::db_disconnect($dbh);
65 print "File not currently tracked: $file\n";