importer SQL dump dans la base de données postgresql

Nous changeons d'hôte et l'ancien a fourni un vidage sql de la base de données postgresql de notre site. Maintenant, j'essaie de mettre cela en place sur un serveur WAMP local pour tester cela.

Le seul problème est que je n'ai pas la moindre idée de comment importer cette base de données dans le postgresql 9 que j'ai mis en place.

J'ai essayé pgAdmin III mais je n'arrive pas à trouver une fonction 'import'. J'ai donc juste ouvert L'éditeur SQL et collé le contenu du dump là-bas et l'ai exécuté, il crée les tables mais je continue de me donner des erreurs quand il essaie de mettre les données en elle.

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

J'ai aussi essayé avec l'invite de commande mais je ne peux pas vraiment trouver la commande que j'ai besoin.

Si je le fais

psql mydatabase < C:/database/db-backup.sql;

Je reçois l'erreur

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

Quelle est la meilleure façon d'importer la base de données?

317
demandé sur dazz 2011-07-27 13:50:50

10 réponses

psql databasename < data_base_dump

C'est la commande que vous recherchez.

Attention: databasename doit être créé avant l'importation. Jetez un oeil à la Docs PostgreSQL Chapitre 23. Sauvegarde et restauration .

547
répondu Jacob 2011-07-27 09:57:47

Voici la commande que vous recherchez.

psql -h hostname -d databasename -U username -f file.sql
258
répondu Gabriel Ramirez 2013-10-03 18:55:29

Je crois que vous voulez exécuter en psql:

\i C:/database/db-backup.sql
83
répondu Arran Ubels 2012-08-20 09:46:14

Cela a fonctionné pour moi:

sudo -u postgres psql db_name < 'file_path'
39
répondu ivanacorovic 2015-03-02 13:33:20

Je ne suis pas sûr si cela fonctionne pour la situation de L'OP, mais j'ai trouvé que l'exécution de la commande suivante dans la console interactive était la solution la plus flexible pour moi:

\i 'path/to/file.sql'

Assurez-vous simplement que vous êtes déjà connecté à la bonne base de données. Cette commande exécute toutes les commandes SQL dans le fichier spécifié.

27
répondu rockusbacchus 2015-05-17 14:09:06

Fonctionne assez bien, en ligne de commande, tous les arguments sont requis, - W est pour le mot de passe

psql -h localhost -U user -W -d database_name -f path/to/file.sql
23
répondu Feuda 2017-01-04 14:16:47

Juste pour les funsies, si votre dump est compressé, vous pouvez faire quelque chose comme

gunzip -c filename.gz | psql dbname

Comme Jacob l'a mentionné, les documents PostgreSQL décrivent assez bien tout cela.

20
répondu alan 2015-05-27 18:26:05

Vous pouvez le faire dans pgadmin3. Supprimez le (s) schéma (s) que contient votre vidage. Ensuite, faites un clic droit sur la base de données et choisissez Restaurer. Ensuite, vous pouvez rechercher le fichier de vidage.

3
répondu Vanessa MacDougal 2014-04-16 17:50:40

J'utilise:

cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>

J'espère que cela aidera quelqu'un.

2
répondu Vajira Lasantha 2015-05-25 23:18:17

J'ai remarqué que de nombreux exemples sont trop compliqués pour localhost où juste l'utilisateur postgres sans mot de passe existe dans de nombreux cas:

psql -d db_name -f dump.sql
0
répondu Kiryl Plyaskevicz 2018-09-14 10:53:10