web-dev-qa-db-fra.com

postgresql - restauration du fichier .dump

Je suis nouveau pour psql. Je viens de mon fichier data.dump de serveur. Je dois le restaurer dans mon répertoire local ..__ J'ai essayé ces commandes.

i) psql -U postgres nombase -f servicedb.dump

Error:
      psql: warning: extra command-line argument "-f" ignored
      psql: warning: extra command-line argument "servicedb.dump" ignored

ii) psql -U postgres nombase <servicedb.dump

 Error:
              ^
 ERROR:  syntaxe error at or near "☺"
 LINE 1: ☺☺

Qu'est-ce que ce fichier ".dump" et comment le restaurer?

30
shahul

J'ai reçu un fichier .dump de mon serveur (Heroku). Comme Klaus l'a dit, pg_restore est le seul moyen de le restaurer dans mon local.

Ce que j'ai écrit dans mon terminal était:

pg_restore -c -d [database_name] [dumpfile_name].dump

Il y a beaucoup d'options que vous pouvez voir dans le lien Klaus de pg_restore :)

45
marrossa

psql -f filenamed.dmp db_name

fonctionne bien 

20
Zydoon

Pour Postgres 9.2

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U [user] -d [db] [filename].dump
12
Serge Seletskyy

Regardez la commande pg_restore .

10

pg_restore est loin d'être évident, c'est la commande que j'ai utilisée pour créer une nouvelle base de données et y restaurer le fichier de vidage sur une instance Postgres distante exécutée sur AWS. Si votre connexion est correcte, pg_restore devrait immédiatement vous demander de saisir votre mot de passe.

pg_restore -h mypostgresdb.eu-west-1.rds.amazonaws.com -U adminuser --verbose -C -d existingdatabase mydbdump.dm

Où les commutateurs sont:

  • -h - nom d'hôte sur aws
  • -U - nom d'utilisateur, il doit s'agir d'un utilisateur admin disposant d'autorisations pour créer une base de données.
  • --verbose - Envoie une sortie verbeuse à l'écran 
  • -C - signifie créer une nouvelle base de données à partir du fichier de vidage (elle sera nommée quelle que soit la base de données appelée.)
  • -d - ce qui porte à confusion, il doit s'agir du nom d'une base de données existante. En principe, pg_restore doit se connecter à une base de données existante pour pouvoir exécuter les scripts nécessaires à la création de la nouvelle base.
  • mydbdump.dmp c'est l'emplacement du fichier de vidage que vous tentez de restaurer.
0
Iain Hunter