diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c index 9b72eac..94e791c 100644 --- a/src/bin/scripts/createdb.c +++ b/src/bin/scripts/createdb.c @@ -22,6 +22,7 @@ int main(int argc, char *argv[]) { static struct option long_options[] = { + {"database", required_argument, NULL, 'd'}, {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, @@ -44,6 +45,7 @@ main(int argc, char *argv[]) const char *dbname = NULL; char *comment = NULL; + char *database = NULL; char *host = NULL; char *port = NULL; char *username = NULL; @@ -67,10 +69,13 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "createdb", help); - while ((c = getopt_long(argc, argv, "h:p:U:wWeO:D:T:E:l:", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "d:h:p:U:wWeO:D:T:E:l:", long_options, &optindex)) != -1) { switch (c) { + case 'd': + database = optarg; + break; case 'h': host = optarg; break; @@ -162,6 +167,9 @@ main(int argc, char *argv[]) } } + if (database == NULL) + database = "postgres"; + if (dbname == NULL) { if (getenv("PGDATABASE")) @@ -192,7 +200,7 @@ main(int argc, char *argv[]) appendPQExpBuffer(&sql, ";\n"); - conn = connectDatabase(strcmp(dbname, "postgres") == 0 ? "template1" : "postgres", + conn = connectDatabase(strcmp(dbname, database) == 0 ? "template1" : database, host, port, username, prompt_password, progname); if (echo) @@ -256,6 +264,7 @@ help(const char *progname) printf(_(" --help show this help, then exit\n")); printf(_(" --version output version information, then exit\n")); printf(_("\nConnection options:\n")); + printf(_(" -d, --database=DATABASE database name to connect to (default: \"postgres\")\n")); printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n"));