"standby clone": exit early in pg_basebackup mode if data directory is not empty

This commit is contained in:
Ian Barwick
2017-05-02 14:47:23 +09:00
parent 00fd8e81f8
commit db69c4b310

View File

@@ -568,6 +568,22 @@ check_source_server()
log_hint(_("use -D/--pgdata to explicitly specify a data directory"));
}
/*
* In the default pg_basebackup mode, we'll cowardly refuse to overwrite
* an existing data directory
*/
if (mode == pg_basebackup)
{
if (is_pg_dir(local_data_directory))
{
log_error(_("target data directory appears to be a PostgreSQL data directory"));
log_detail(_("target data directory is \"%s\""), local_data_directory);
log_hint(_("ensure the target data directory is empty before running \"STANDBY CLONE\" in pg_basebackup mode"));
PQfinish(source_conn);
exit(ERR_BAD_CONFIG);
}
}
/*
* Copy the source connection so that we have some default values,
* particularly stuff like passwords extracted from PGPASSFILE;