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'\''
Estou executando um banco de dados postgres em uma instância do Google Cloud que descartamos e recriamos diariamente como parte de nossa criação noturna. Atualmente isso está sendo feito manualmente e eu 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 eu tenho que re-configurar a senha ...
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD 'passwordhere' ; "
O comando gcloud
já está usando aspas duplas, psql postgres -c
já está usando as aspas simples, que citações devo usar para colocar a senha entre aspas?
Eu tentei escapar das aspas, mas não funciona:
WITH PASSWORD \'passwordhere\'
ERROR: syntax error at or near "\" LINE 1: ALTER USER myuser WITH PASSWORD \passwordhere'
ou
WITH PASSWORD \"passwordhere\"
bash: -c: line 0: unexpected EOF while looking for matching ''' bash: -c: line 1: syntax error: unexpected end of file
Como posso escapar dessas citações?