Postgres: создать роль в одной строке - PullRequest
0 голосов
/ 20 мая 2018

Я хочу создать роль / пользователя в одну строку.Вот что я попробовал:

psql -U postgres -c 'createuser my_app with createdb login password 'my_password';'
psql: warning: extra command-line argument "with" ignored
psql: warning: extra command-line argument "createdb" ignored
psql: warning: extra command-line argument "login" ignored
psql: warning: extra command-line argument "password" ignored
psql: warning: extra command-line argument "'my_password';'" ignored
psql: FATAL:  database "my_app" does not exist

Вместо createuser Я также попробовал create user и create role, но независимо от этого я получаю ту же ошибку.Я на Windows с (PostgreSQL) 9.6.2

Что я делаю не так?


Обновление:

Я пытался использовать двойные кавычки, но по некоторым причинам postgres, похоже, не нравятся мои двойные кавычки.Использование двойных кавычек внутри одинарных кавычек таинственно работает -> Спасибо @ Laurenz

psql -U postgres -c "createuser my_app with createdb login password 'my_password';"
ERROR:  syntax error at or near "createuser"
LINE 1: createuser my_app with createdb login password 'my_password'...

1 Ответ

0 голосов
/ 20 мая 2018

createuser не является командой SQL, поэтому она не будет работать.

CREATE USER правильно, но вы не можете вложить одинарные кавычки в одинарные кавычки.

Должно быть

psql -U postgres -c "CREATE USER my_app CREATEDB PASSWORD 'my_password'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...