web-dev-qa-db-fra.com

télécharger et pipe SQL à psql

Comment puis-je faire cela en une seule étape?

Télécharger la commande de sauvegarde:

curl http://s3.aws.com/backup.sql

Restaurer la commande de sauvegarde:

Sudo -u postgres psql <PIPE-THE-OUTPUT-OF-PREVIOUS-COMMAND>

Si les deux commandes fonctionnent, vous devriez essayer

curl -s http://s3.aws.com/backup.sql | Sudo -u postgres psql
3
ob2

Je sais que c’est une vieille question, mais j’ai trébuché lors d’une recherche (c’était le sommet des résultats) et il ne semble pas que les réponses soient correctes selon le manuel postgres.

Le manuel suggère de passer le -f - comme option à psql, puis de passer à la _ stdin comme vous le souhaitez. Citant le manuel pour 9.4:

Si nomfichier est - (trait d'union), l'entrée standard est lue jusqu'à une indication EOF ou une méta-commande\q. Notez cependant que Readline n'est pas utilisé dans ce cas (comme si -n avait été spécifié).

L'utilisation de cette option est légèrement différente de l'écriture de psql <nomfichier. En général, les deux font ce que vous attendez, mais l'utilisation de -f active certaines fonctionnalités de Nice, telles que les messages d'erreur avec des numéros de ligne.

1
kazza

Encore une autre manière:

Sudo -u postgres psql --file <(curl -s http://s3.aws.com/backup.sql)
0
pLumo