Конечный аргумент командной строки в строке "psql -c": что это? - PullRequest
0 голосов
/ 12 ноября 2019

Я смотрю файл конфигурации YAML для запуска облачного сервера. Я хочу изменить файл для использования экземпляра базы данных RDS, а не PostgreSQL на экземпляре EC2. Я не могу понять смысл этого трейлинга aggregate" в конце последних трех строк. Я немного погуглил команду psql -c, но не могу найти объяснение или пример ее использования в другом месте. Причина, по которой это немного сбивает с толку, заключается в том, что пример конфигурации использует одну и ту же строку для базы данных, пользователя, пароля и схемы.

  - su postgres -c "psql -c \"CREATE ROLE aggregate WITH LOGIN PASSWORD 'aggregate'\""
  - su postgres -c "psql -c \"CREATE DATABASE aggregate WITH OWNER aggregate\""
  - su postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE aggregate TO aggregate\""
  - su postgres -c "psql -c \"CREATE SCHEMA aggregate\" aggregate"
  - su postgres -c "psql -c \"ALTER SCHEMA aggregate OWNER TO aggregate\" aggregate"
  - su postgres -c "psql -c \"GRANT ALL PRIVILEGES ON SCHEMA aggregate TO aggregate\" aggregate"

Является ли конечный aggregate" ссылкой на базу данных, в которой создается схема/ измененный проживает?

РЕДАКТИРОВАТЬ: значения конечной точки, конечно, находятся в другом месте в файле конфигурации. Вышеуказанные команды - это то, что мне нужно для запуска базы данных RDS перед запуском экземпляра EC2, и для ясности и безопасности я хотел бы изменить значения базы данных, схемы и имени пользователя, а не просто иметь все, что нужно aggregate.

1 Ответ

0 голосов
/ 12 ноября 2019

Синтаксис команды psql:

psql [option…] [dbname [username]]

, как определено в документации . Это означает, что завершающий aggregate (обратите внимание, что последний " является частью внешней команды su, а не частью команды psql) - это имя БД, которое вы определили во второй строке.

...