Pages: 1
- Sujet précédent - [Postgres/PostGis] Restauration de tables d'un schéma d'une BD - Sujet suivant
#1 Thu 11 July 2013 16:28
- Gwen73
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 23 Apr 2007
- Messages: 17
[Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour,
J'ai une base de test et une base de prod Postgres/postgis.
J'ai fait des modifs sur les tables d'un des schémas de test.
Afin de ne pas refaire les mêmes manips' en Prod, je souhaite récupérer les nouvelles tables de test en Prod.
Pour cela, sous PgAdmin, je fais un clic droit sur le schéma en question de la base de test et je ne sauvegarde que la table qui m'intéresse. je génère ainsi un fichier SQL.
Je me connecte sur la base de Prod. Je lance l'éditeur SQL. Je vais chercher mon fichier SQL et l'exécute. J'ai le msg d'erreur suivant :
ERREUR: erreur de syntaxe sur ou près de « TOI12 »
LINE 48: TOI12 Oisans Avenue de la gare 38520 Le Bourg-d'Oisans 01040...
^
********** Erreur **********
PS : j'ai également essayé de restaurer via un fichier backup, mais une fois la restauration effectuée, je me suis aperçu que la restauration n'avait pas réalisé l'intégration des données spatiales (pas de référence à la table concernée dans la table geometry_columns). J'ai donc récupéré une table alphanumérique !
>> Comment fait-on pour restaurer des données (avec de la géographie) lorsqu'on choisit que qq éléments et pas une BD entière ?
je vous remercie de votre aide
Hors ligne
#2 Thu 11 July 2013 16:50
- pchevallot
- Participant occasionnel
- Lieu: METZ
- Date d'inscription: 24 Apr 2008
- Messages: 15
- Site web
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Salut Gwen !
Tout d'abord tes deux bases ont-elles bien toutes deux les fonctions Postgis ?
Ensuite as-tu éventuellement essayé de procéder à un "copier-coller" depuis QGis ? Pour ma part, je procède ainsi entre une base à nous et une base de l'Agglo, ce qui peut s'apparenter à ton cas de figure.
Bonne continuation !
Pascal
Hors ligne
#3 Fri 12 July 2013 08:46
- Gwen73
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 23 Apr 2007
- Messages: 17
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Salut Pascal,
Les 2 BD sont quasi-identiques et bien-sûr toutes les 2 avec PostGis.
Désolé, on n'est pas utilisateurs Qgis. Il doit bien y avoir une solution avec PgAdmin ou via un script.
Je te remercie.
A+
Hors ligne
#4 Fri 12 July 2013 10:26
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
pg_dump devrait faire l'affaire
http://docs.postgresqlfr.org/9.0/backup.html
Jean-Marie
Azimut
Hors ligne
#5 Fri 12 July 2013 15:10
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1549
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Pour abonder dans le sens de Jean-Marie:
Pg_dump est vraiment puissant pour exporter des objets d'une base vers une autre:
Son mode par défaut est de générer du SQL qui est donc directement compréhensible par la base sur laquelle on veut copier/restaurer l'objet.
Associé avec l'outil psql, cela permet en une seule commande (donc bien plus rapide que la manipulation de l'interface graphique de PgAdmin) de copier un objet entre deux serveurs Postgresql, comme par exemple:
Code:
pg_dump -t ma_table_a_exporter mabasesource | psql -h autre_serveur -d mabasedestination
Nicolas
Hors ligne
#6 Sat 13 July 2013 11:42
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour
Dans les versions récentes de pg_dump et pg_restore il y a des options pour
filtrer les schémas ou les tables en export ou/et en import.
Ca donnerai quelque chose comme :
pg_restore -t matable -d mabase monfichierdumpcomplet.dump
Il faut penser à supprimer la table avant. Bien sûr dans le cad d'un vrai
système relationnel les clés étrangères poseront problèmes.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Tue 16 July 2013 10:05
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour,
Pour synchroniser deux bases avec une maître et l'autre esclave j'utilise la méthode suivante avec pg_dump et pg_restore :
ce fichier est un .bat sous windows
Code:
::************************************************************************* ::---------------- Paramètres ---------------------- ::************************************************************************* :: Date echo %date% set x=%date:/=-% echo %x% :: Dossier log et temporaire set dossier_log=log set dossier_tmp=tmp :: Connexion PostgreSQL / PostGIS :: Hôte distant : set db_distant=192.168.1.1 :: Hôte local : set db_host=192.168.1.2 :: Port : set db_port=5432 :: Base de données : set db_local=ma_base set db_distant=ma_base :: Schéma : set db_schema=mon_schema :: Utilisateur : set db_user=mon_user ::choix des tables à transférer de la source vers la cible set table=-t captage -t troncon -t branchement -t vanne -t decharge -t regpre -t raccord -t stockage -t hydrant -t refoul -t traitement ::**************************************************************************** ::****** Procédure ************** ::**************************************************************************** :: ---------------- creation d'un dump du schema ---------------------- pg_dump.exe -i -h %db_distant% -p %db_port% -U %db_user% -n %db_schema% %table% -Fc -b -v -f "%dossier_tmp%/%x%_dump_%db_schema%.dump" "%db_distant%" > %dossier_log%\%x%_log_dump_%db_schema%.log :: ---------------- upload dump schema localhost ---------------------- pg_restore.exe -h %db_host% -p %db_port% -U %db_user% -d %db_local% -n %db_schema% -c -O -x -v "%dossier_tmp%/%x%_dump_%db_schema%.dump" > %dossier_log%\%x%_log_restore_%db_schema%.log :: ---------------- droit de consultation des couches ---------------------- psql.exe -h %db_host% -p %db_port% -U %db_user% -d %db_local% -c "copy (SELECT 'GRANT SELECT ON TABLE ' || schemaname || '.' || tablename || ' TO GROUP consultation;' from pg_tables where schemaname = '%db_schema%') to STDOUT WITH CSV " > %dossier_tmp%/grant_select_%db_schema%.sql psql.exe -h %db_host% -p %db_port% -U %db_user% -d %db_local% -f %dossier_tmp%/grant_select_%db_schema%.sql > %dossier_log%\log_transfert.log ::**************************************************************************** ::****** Nettoyage du répertoire ************** ::**************************************************************************** del /Q %dossier_tmp%\*.* > %dossier_log%/log_transfert.log Exit
Bon courage
Gwendal
Hors ligne
#8 Wed 11 September 2013 08:52
- Gwen73
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 23 Apr 2007
- Messages: 17
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour à tous et merci pour vos réponses,
Finalement, on a trouvé mieux pour nous de créer un projet sous FME et de s'enservir pour transférer data et tables d'une base à l'autre.
A+
Hors ligne
#9 Wed 11 September 2013 12:17
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour,
voir aussi les possibilités offertes par l'extension dblink :
http://www.postgresql.org/docs/9.2/static/dblink.html
Mathieu
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#10 Mon 21 December 2020 23:43
- tallseydi
- Juste Inscrit !
- Lieu: Podor
- Date d'inscription: 15 Apr 2015
- Messages: 2
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour
Je suis nouveau sur postgres
Je dispose de quatre fichiers de sauvegardes
Je voulais faire une restauration sur pgadmin 3
Je demandais à savoir s'il est possible d'en faire un seul fichier et le restaurer?
Merci
Hors ligne
#11 Tue 22 December 2020 16:33
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1549
Re: [Postgres/PostGis] Restauration de tables d'un schéma d'une BD
Bonjour,
Ca dépend du format: si ce sont des dumps SQL, oui on doit pouvoir tout mettre dans un seul fichier, mais pourquoi ?
en ligne de commande, la restauration de 4 fichiers SQL est rapide:
Code:
psql -d database -U user -f fichier.sql
(si les fichiers sont au format PG Dump, il faut utiliser l'outil pg_restore)
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - [Postgres/PostGis] Restauration de tables d'un schéma d'une BD - Sujet suivant