2010-11-18 16 views
2

J'ai créé une sauvegarde de base de données PostgreSQL en utilisant psql.Purge de la base de données postgresql telle qu'elle était neuve

Maintenant, je veux restaurer cette sauvegarde du fichier:

psql -d thesamename -f /my/backup/file 

Mais je reçois des erreurs que les données existent déjà.

Existe-t-il une commande pour supprimer tout de la base de données pour l'amener à juste créé l'état, sauf abandonner et créer une fois de plus?
(Je ne veux pas configurer de nouveau le propriétaire, tablescpace etc.)

Peut-être un moyen d'écraser la base de données avec celle du fichier de sauvegarde? (Le fichier de sauvegarde est d'un autre serveur de base de données)

+0

On dirait que vous avez juste besoin d'utiliser TRUNCATE. –

Répondre

1

Vous pouvez supprimer le schéma public de votre base de données et re créer après:

DROP SCHEMA PUBLIC CASCADE; 
CREATE SCHEMA PUBLIC AUTHORIZATION postgres; 
GRANT ALL ON SCHEMA public TO public; 

Hope it helps ...

1

vous pouvez le manipuler comme vous want..and vous ne souhaitez que le dumping des données .une fois que vous commencerez à déposer des données fichier de schéma va générer automatiquement.et pas besoin de laisser tomber les données anciennes.il va chevaucher avec de nouvelles données sur les données existantes.

Vous pouvez passer par ce lien pour plus de précisions ..

http://www.postgresql.org/docs/8.4/interactive/app-pgdump.html

http://www.postgresql.org/docs/8.4/interactive/app-pgrestore.html

Vous pouvez utiliser

GRANT ALL ON SCHEMA public TO public;