Nous changeons d'hôtes et l'ancien a fourni un vidage SQL de la base de données PostgreSQL de notre site.
Maintenant, j'essaie de configurer cela sur un serveur WAMP local pour tester cela.
Le seul problème est que je ne sais pas comment importer cette base de données dans PostgreSQL 9 que j'ai installé.
J'ai essayé pgAdmin III mais je n'arrive pas à trouver une fonction «importation». J'ai donc juste ouvert l'éditeur SQL et collé le contenu du vidage là-bas et l'ai exécuté, il crée les tables mais il me donne toujours des erreurs quand il essaie d'y mettre les données.
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 également essayé de le faire avec l'invite de commande, mais je ne trouve pas la commande dont j'ai besoin.
Si je 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?
la source
ERROR: syntax error at or near "t"
. Il s'est avéré que je n'avais importé qu'un schéma partiel et qu'uneCREATE TABLE
instruction antérieure au script avait donc échoué. Parcourez la sortie complète de l'importation pour la trouver.Réponses:
C'est la commande que vous recherchez.
Attention:
databasename
doit être créé avant l'importation. Jetez un œil au chapitre 23 de la documentation et de la sauvegarde de PostgreSQL Docs .la source
-f
switch (ou--file
)Voici la commande que vous recherchez.
la source
pg_restore -h hostname -d dbname -U username filename.sql
Je crois que vous voulez exécuter en psql:
la source
Cela a fonctionné pour moi:
la source
Je ne sais pas 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:
Assurez-vous simplement que vous êtes déjà connecté à la bonne base de données. Cette commande exécute toutes les commandes SQL du fichier spécifié.
la source
psql
ligne de commande. Merci!Fonctionne assez bien, en ligne de commande, tous les arguments sont requis, -W est pour le mot de passe
la source
Juste pour le fun, si votre vidage est compressé, vous pouvez faire quelque chose comme
gunzip -c filename.gz | psql dbname
Comme Jacob l'a mentionné, les documents PostgreSQL décrivent tout cela assez bien.
la source
J'utilise:
J'espère que cela aidera quelqu'un.
la source
Vous pouvez le faire dans pgadmin3. Supprimez le ou les schémas contenus dans votre vidage. Cliquez ensuite avec le bouton droit sur la base de données et choisissez Restaurer. Ensuite, vous pouvez rechercher le fichier de vidage.
la source
J'ai remarqué que de nombreux exemples sont trop compliqués pour localhost où il n'y a que des utilisateurs postgres sans mot de passe dans de nombreux cas:
la source
assurez-vous que la base de données que vous souhaitez importer est créée, vous pouvez alors importer le vidage avec
Si vous souhaitez remplacer toute la base de données, supprimez d'abord la base de données
puis le recréer avec
la source
J'ai essayé de nombreuses solutions différentes pour restaurer ma sauvegarde postgres. J'ai rencontré des problèmes d'autorisation refusée sur MacOS, aucune solution ne semblait fonctionner.
Voici comment je l'ai fait fonctionner:
Postgres est livré avec Pgadmin4. Si vous utilisez macOS, vous pouvez appuyer sur
CMD
+SPACE
et taperpgadmin4
pour l'exécuter. Cela ouvrira un onglet de navigateur en chrome.Étapes pour obtenir la sauvegarde / restauration de pgadmin4 +
1. Créez la sauvegarde
Pour ce faire, cliquez avec le bouton droit sur la base de données -> "sauvegarde"
2. Donnez un nom au fichier.
Comme
test12345
. Cliquez sur sauvegarde. Cela crée un vidage de fichier binaire, ce n'est pas dans un.sql
format3. Voir où il a été téléchargé
Il devrait y avoir une fenêtre contextuelle en bas à droite de votre écran. Cliquez sur la page "plus de détails" pour voir où votre sauvegarde a été téléchargée
4. Trouvez l'emplacement du fichier téléchargé
Dans ce cas, c'est
/users/vincenttang
5. Restaurez la sauvegarde à partir de pgadmin
En supposant que vous ayez effectué les étapes 1 à 4 correctement, vous aurez un fichier binaire de restauration. Il peut arriver que votre collègue veuille utiliser votre fichier de restauration sur sa machine locale. Demandez à cette personne d'aller sur pgadmin et de restaurer
Pour ce faire, cliquez avec le bouton droit sur la base de données -> "restaurer"
6. Sélectionnez le localisateur de fichiers
Assurez-vous de sélectionner l'emplacement du fichier manuellement, NE PAS faire glisser et déposer un fichier sur les champs de l'uploader dans pgadmin. Parce que vous rencontrerez des autorisations d'erreur. À la place, recherchez le fichier que vous venez de créer:
7. Trouver ledit fichier
Vous devrez peut-être modifier le filtre en bas à droite sur "Tous les fichiers". Recherchez le fichier par la suite, à partir de l'étape 4. Appuyez maintenant sur le bouton "Sélectionner" en bas à droite pour confirmer
8. Restaurer ledit fichier
Vous verrez à nouveau cette page, avec l'emplacement du fichier sélectionné. Allez-y et restaurez-le
9. Succès
Si tout va bien, le coin inférieur droit devrait afficher un indicateur indiquant une restauration réussie. Vous pouvez naviguer vers vos tables pour voir si les données ont été restaurées propery sur chaque table.
10. En cas d'échec:
Si l'étape 9 échoue, essayez de supprimer votre ancien schéma public sur votre base de données. Allez dans "Outil de requête"
Exécutez ce bloc de code:
Maintenant, essayez à nouveau les étapes 5 à 9, cela devrait fonctionner
Sommaire
C'est ainsi que j'ai dû sauvegarder / restaurer ma sauvegarde sur Postgres, lorsque j'ai eu des problèmes d'autorisation d'erreur et que je ne pouvais pas me connecter en tant que superutilisateur. Ou définissez les informations d'identification pour la lecture / écriture à l'aide
chmod
des dossiers. Ce flux de travail fonctionne pour un vidage de fichier binaire par défaut "Personnalisé" de pgadmin. Je suppose que.sql
c'est la même chose, mais je n'ai pas encore testéla source