Question

J'ai une sauvegarde PostgreSQL faite avec phpPgAdmin en utilisant Export> Copier (au lieu Copier> SQL qui est en fait ce que je dois).

Fichier contient des entrées comme ceci:

COPY tablename(id, field) FROM stdin;
...

Comment convertir ce fichier au format SQL?

INSERT INTO tablename...

Je veux utiliser PgAdmin pour importer ce fichier à l'aide d'exécuter la commande SQL.

Était-ce utile?

La solution

Vous ne pouvez pas convertir ce format SQL (au moins pas carrément).

Si vous ne pouvez pas réexporter, l'option plus simple est de contourner phpPgAdmin , Connectez-vous sur votre serveur et exécuter quelque chose comme

cat [yourdump.sql]  | psql [your connections args]

Si vous n'avez pas accès shell à votre serveur, vous pouvez vous essayer de télécharger le fichier (via SFTP ou FTP) et de le charger répercutant phpPgAdmin avec "COPY <table> FROM <path_to_file_on_server>". Mais s'il y a beaucoup de tables, vous devez (je crois) diviser le fichier et de le faire un à la fois.

http://phppgadmin.sourceforge.net/?page=faq

Autres conseils

Je ne sais pas d'une manière ou d'un outil qui peut convertir des déclarations « COPIE » dans « INSERT ».

Mais avec l'outil de ligne de commande « pg_dump » vous pouvez créer un fichier de vidage DB avec des déclarations « INSERT » au lieu de « copier ». Utilisation simple l'argument "--column inserts" (peut être "--inserts" est ok pour vous).

EDIT:

Qu'est-ce que vous pouvez faire est:

  1. Créer une nouvelle base de données postgres sur votre machine locale
  2. Importer votre fichier de vidage de DB dans la nouvelle base de données créée

    psql -U <dbuser> <database> < dump.sql
    
  3. Et créer une décharge postgres avec "--column inserts" dans cette base de données

    pg_dump --column-inserts -U <dbuser> <database> > dumpWithInserts.sql
    

Vous pouvez essayer COPIE DE PROGRAMME syntaxe, disponible depuis PostgreSQL 9.3

Par exemple: COPY tbl_customers (id, address_id, insurance_id, fullname, secret_code ...) FROM PROGRAM 'echo "1 2 \N Ivan Ivanov 42 ..."'

Je l'ai écrit un outil pour convertir la copie de la décharge à inserts de vidage:

https://github.com/freddez/pg-dump2insert

Vous pouvez l'utiliser pour charger une sauvegarde dans une autre base de données ou rechercher spécifique supprimé des valeurs par exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top