2017-04-26 3 views
1

Je reçois l'erreur suivante lors d'une tentative de restaurer un schéma de base de données postgres à partir d'un fichier de vidage .sql créé sur un autre serveur:

REVOKE psql: backup.sql: 158885: ERREUR: rôle « nom_serveur » n'existe pasRestaurer le schéma postgres à partir du fichier de vidage .sql sans rôle et/ou autorisations?

Le fichier de vidage a été créé à l'aide pg_dump -U username "server_name" -n schema_name > schema_name.sql

Comment puis-je créer un fichier de vidage sans rôle et/ou autorisations?

Répondre

1

En ajoutant les options de

--no-owner-
« Ne pas donner les commandes pour définir la propriété des objets pour correspondre à la base de données d'origine Par défaut, les problèmes de pg_restore ALTER OWNER ou SET SESSION AUTHORIZATION pour définir la propriété des éléments créés.. Ces instructions échoueront à moins que la connexion initiale à la base de données ne soit faite par un superutilisateur (ou le même utilisateur qui possède tous les objets du script.) Avec -O, tout nom d'utilisateur peut être utilisé pour la connexion initiale, et cet utilisateur possèdera tous les objets créés. "

et --no-acl:
" Empêche la restauration des privilèges d'accès (commandes d'octroi/de révocation)."

pg_dump --no-owner --no-acl -U username "server_name" -n schema > schema.sql 

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html