}
if ($in{'all'}) {
$dir = &date_subs($in{'path'});
- &make_dir($dir, 0755) if ($in{'mkdir'});
+ &make_backup_dir($dir) if ($in{'mkdir'});
$path = $dir."/".$db.".".$suf;
}
else {
next;
}
$format = $config{'backup_format_'.$sf};
+ $mkdir = $config{'backup_mkdir_'.$sf};
$suf = $format eq "p" ? "sql" :
$format eq "t" ? "tar" : "post";
if ($all) {
- $file = &date_subs("$config{'backup_'}/$db.$suf");
+ $dir = &date_subs($config{'backup_'});
+ $file = "$dir/$db.$suf";
+ &make_backup_dir($dir) if ($mkdir);
}
else {
$file = &date_subs($config{'backup_'.$db});
return 1;
}
+# make_backup_dir(directory)
+# Create a directory that PostgreSQL can backup into
+sub make_backup_dir
+{
+local ($dir) = @_;
+if (!-d $dir) {
+ &make_dir($dir, 0755);
+ if ($postgres_sameunix && defined(getpwnam($postgres_login))) {
+ &set_ownership_permissions($postgres_login, undef, undef, $dir);
+ }
+ }
+}
+
sub quote_table
{
local @tn = split(/\./, $_[0]);