Alterar a senha do postgres usando ssh remoto

Alterar a senha do postgres usando ssh remoto

Estou executando um banco de dados postgres em uma instância do Google Cloud que descartamos e recriamos diariamente como parte de nossa compilação noturna. Atualmente isso está sendo feito manualmente e quero automatizá-lo.

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;' "

Isso funciona bem para descartar e recriar o banco de dados, o problema surge quando tenho que reconfigurar a senha ...

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

gcloudcomando já está usando aspas duplas, psql postgres -cjá está usando aspas simples, quais aspas devo usar para colocar a senha entre aspas?

Eu tentei escapar das aspas, mas não funciona:

WITH PASSWORD \'passwordhere\' 

ERRO: erro de sintaxe em ou próximo a "\" LINHA 1: ALTER USER myuser WITH PASSWORD \passwordhere'

ou

WITH PASSWORD \"passwordhere\" 

bash: -c: linha 0: EOF inesperado ao procurar por `'' correspondente bash: -c: linha 1: erro de sintaxe: fim inesperado do arquivo

Como faço para escapar dessas citações?

Responder1

isso parece funcionar:

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

-

WITH PASSWORD '\''passwordhere'\'' 

informação relacionada