По умолчанию, если пользователь не указывает -d при подключении к psql, предполагается, что база данных по умолчанию для пользователя совпадает с именем пользователя. например, для вашего пользователя somesuperuser
предполагается, что этот пользователь имеет базу данных по умолчанию с именем somesuperuser
.
Если вы хотите выполнить какую-либо операцию, не подключаясь сначала к сеансу psql, а затем выполняя команду psql, вы можете использовать следующие форматы, которые вернут управление пользователю после выполнения команды .
./psql -U somesuperuser -d postgres -p 5432 -c "CREATE DATABASE new_database OWNER somesuperuser"
Приведенная выше команда создаст базу данных new_database. После этого вы можете создать любую таблицу / объект в той же базе данных, используя команду ниже, например
./psql -U somesuperuser -d new_database -c "create table test (col1 int,col2 int)"
, или, если у вас есть файл test. sql, содержащий несколько ddl и dml для создания таблиц, вставьте в таблицы, тогда вы можете использовать команду ниже
./psql -U somesuperuser -d new_database -f /home/root/test.sql
Раскрытие информации: я работаю для EnterpriseDB (EDB)