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?
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 .
Voici la commande que vous recherchez.
psql -h hostname -d databasename -U username -f file.sql
Je crois que vous voulez exécuter en psql:
\i C:/database/db-backup.sql
Cela a fonctionné pour moi:
sudo -u postgres psql db_name < 'file_path'
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é.
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
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.
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.
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.
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