Изменить пароль postgres с помощью удаленного ssh

Изменить пароль postgres с помощью удаленного ssh

Я запускаю базу данных postgres на экземпляре Google Cloud, которую мы ежедневно удаляем и создаем заново в рамках нашей ночной сборки. В настоящее время это делается вручную, и я хочу автоматизировать это.

gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "dropdb mydb"
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "createdb mydb"
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'GRANT ALL PRIVILEGES ON DATABASE mydb to myuser;' "

Это прекрасно работает для удаления и повторного создания базы данных, проблема возникает, когда мне приходится заново устанавливать пароль...

gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD 'passwordhere' ; "

gcloudкоманда уже использует двойные кавычки, psql postgres -cуже использует одинарные кавычки, какие кавычки мне следует использовать, чтобы заключить пароль в кавычки?

Я пробовал экранировать кавычки, но это не работает:

WITH PASSWORD \'passwordhere\' 

ОШИБКА: синтаксическая ошибка в или около "\" СТРОКА 1: ALTER USER myuser WITH PASSWORD \passwordhere'

или

WITH PASSWORD \"passwordhere\" 

bash: -c: строка 0: неожиданный EOF при поиске соответствующего `'' bash: -c: строка 1: синтаксическая ошибка: неожиданный конец файла

Как мне избежать этих кавычек?

решение1

Кажется, это работает:

gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD '\''passwordhere'\'' '; "

-

WITH PASSWORD '\''passwordhere'\'' 

Связанный контент