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 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 tenho que redefinir a senha...
gcloud compute ssh --zone europe-west2-c postgres@postgresql-dev -- "psql postgres -c 'ALTER USER myuser WITH PASSWORD 'passwordhere' ; "
gcloud
o comando já está usando as aspas duplas, psql postgres -c
já está usando as 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 correspondência `'' bash: -c: linha 1: erro de sintaxe: final de arquivo inesperado
Como faço para escapar dessas citações?
isso parece funcionar:
-