je l'ai fait de sauvegarde sur la base de données sur un serveur différent et qui a un rôle différent que je dois, avec cette commande:Postgresql - sauvegarder la base de données et restaurer sur différents propriétaires?
pg_dump -Fc db_name -f db_name.dump
Puis je copier la sauvegarde sur un autre serveur où je dois restaurer la base de données, mais il n'y a pas propriétaire qui a été utilisé pour cette base de données. Disons que la base de données a le propriétaire owner1
, mais sur un serveur différent, j'ai seulement owner2
et j'ai besoin de restaurer cette base de données et de changer de propriétaire.
Ce que je l'ai fait sur un autre serveur lors de la restauration:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Mais quand la restauration est exécuté j'obtenir ces erreurs:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Comment puis-je il préciser si changer le propriétaire? Ou est-ce impossible?
'pg_dump --no-owner' devrait également faire –
Ma préférence est de reporter ce genre de décisions jusqu'à ce que la restauration. Si vous le faites à la décharge, cela signifie que vous ne pouvez pas changer d'avis sans exporter. Le faire à la restauration signifie que les options sont laissées ouvertes au cas où vous décidiez que vous auriez vraiment dû créer ce rôle manquant etc. – Gary
Donc si je veux changer de propriétaire, je dois sauvegarder sans propriétaire? Parce que je pensais que je pourrais changer de propriétaire lors de la restauration. Mais même en réglant '--role' sur un propriétaire différent, il essayait toujours d'utiliser le propriétaire d'origine (mais je n'utilisais pas' --no-owner'.) – Andrius