#1 Sun 18 March 2018 19:37
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Importer une base .sqlite dans une base postgre/gis
Bonjour,
je cherche un moyen simple et libre pour pouvoir convertir une base spatialite dans une base postgres/gis ? Auriez vous une idée ? Si oui est ce que quelqu'un peut m'indiquer la marche à suivre ?
merci
PS : J'ai déjà essayé des solutions comme Beaver ou Talend data integration (la base n'a pas de schéma) sans succés
Dernière modification par Theos2000 (Sun 18 March 2018 19:40)
Hors ligne
#2 Mon 19 March 2018 00:15
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Importer une base .sqlite dans une base postgre/gis
Le programme ogr2ogr de la librairie GDAL ?
http://www.gdal.org/ogr2ogr.html
Hors ligne
#3 Mon 19 March 2018 07:33
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
D'accord. Je ne connais pas grand chose en ligne de commande Concrètement pour apeller gdal il faut ouvrir une ligne de commande dans le cmd ou osgeo ? Si vous avez des indications pour la ligne de commande ça serait sympa. En attendant je vais me pencher dessus merci
Hors ligne
#4 Mon 19 March 2018 09:08
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Importer une base .sqlite dans une base postgre/gis
Si vous avez OSGEO4W d'installé,
vous lancez le shell osgeo (il se trouve dans le menu démarrez),
et vous tapez :
Code:
ogr2ogr -F PostgreSQL PG:"dbname='ma_bdd' host='adresse_du_serveur' user='mon_nom_dutilisateur' port='mon_port'" C:\le\chemin\vers\la\bdd.sqlite
Les détails de la commange peuvent être trouvés dans le lien précédent.
Le détail des drivers Postgres et SQLITE sont ici :
http://www.gdal.org/drv_pg.html
http://www.gdal.org/drv_sqlite.html
Dernière modification par tumasgiu (Mon 19 March 2018 09:12)
Hors ligne
#5 Mon 19 March 2018 09:26
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
Super, merci pour la commande, c'est un bon début pour mettre le pied dans cette grande librairie !
Hors ligne
#6 Mon 19 March 2018 13:56
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Importer une base .sqlite dans une base postgre/gis
De rien, et désolé de propager de mauvais termes,
la traduction de library étant bibliothèque.
Hors ligne
#7 Mon 19 March 2018 15:03
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
Je me permet de revenir sur le sujet, mais je me retrouve coincé sur une erreur concernant les drivers pour postgresql. j'utilise OSgeo pour apeller gdal et dans le doute installer l'ensemble des librairies...
Mais j'ai un message qui dit postgresql drivers failed, y a il une bibliothèque de disponible a installer, si oui comment installe on une bibliotheque depuis osgeo....;
ogr2ogr -lco schema=import -overwrite=yes -F PostgreSQL PG:"dbname=xxx host=xxx.xxx.xxx user=xxx port=xxx password=xxx" chemin.sqlite
Hors ligne
#8 Mon 19 March 2018 15:28
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Importer une base .sqlite dans une base postgre/gis
Normalement le driver PostgreSQL est installé de base avec la distribution OSGEO4W.
Vous pouvez tout de même vérifier qu'il fait partie des drivers installés en tapant :
Code:
ogr2ogr --formats | find /I "Postgresql"
Cela doit renvoyer :
Code:
PostgreSQL -vector- (rw+): PostgreSQL/PostGIS
Postez le message d'erreur en entier pour en savoir plus sur l'erreur.
Hors ligne
#9 Mon 19 March 2018 16:31
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
Ok, de mon coté j'ai bien ces variables mais je me retrouve avec un code erreur enfin tout dépend de la commande que j'utilise, d'aillleurs laquelle pour un simple import dans un schéma est la plus appropriée ? (Pour rappel il s'agit d'importer des fichiers édigéo, que j'ai intégré dans une base spatialite)
ogr2ogr -F PostgreSQL PG:"host=localhost port=5432 user=xxx password=xx dbname=xxx" xxx.sqlite
Code:
"ERROR 1: INSERT command for new feature failed. ERREUR: la valeur d'une cl├® dupliqu├®e rompt la contrainte unique ┬½ geo_section_pkey ┬╗ DETAIL: La cl├® ┬½ (ogc_fid)=(445) ┬╗ existe d├®j├á."
ou
ogr2ogr.exe -append -lco GEOMETRY_NAME=geom -lco SCHEMA=xxx -lco overwrite=yes -f "PostgreSQL" PG:"host=xxxx port=5433 user=xxx dbname=xxx password= xxxx" -a_srs "EPSG:2154" xxxxx.sqlite
Code:
ERROR 1: Unable to query table batiment_id for column definitions : no such tabl e: batiment_id. ERROR 1: Unable to query table borne_id for column definitions : no such table: borne_id. ERROR 1: Unable to query table boulon_id for column definitions : no such table: boulon_id. ERROR 1: Unable to query table commune_id for column definitions : no such table : commune_id. ERROR 1: Unable to query table croix_id for column definitions : no such table: croix_id. ERROR 1: Unable to query table id_s_obj_z_1_2_2 for column definitions : no such table: id_s_obj_z_1_2_2. ERROR 1: Unable to query table lieudit_id for column definitions : no such table : lieudit_id. ERROR 1: Unable to query table numvoie_id for column definitions : no such table : numvoie_id. ERROR 1: Unable to query table parcelle_id for column definitions : no such tabl e: parcelle_id. ERROR 1: Unable to query table ptcanv_id for column definitions : no such table: ptcanv_id. ERROR 1: Unable to query table section_id for column definitions : no such table : section_id. ERROR 1: Unable to query table subdfisc_id for column definitions : no such tabl e: subdfisc_id. ERROR 1: Unable to query table subdsect_id for column definitions : no such tabl e: subdsect_id. ERROR 1: Unable to query table symblim_id for column definitions : no such table : symblim_id. ERROR 1: Unable to query table tline_id for column definitions : no such table: tline_id. ERROR 1: Unable to query table tpoint_id for column definitions : no such table: tpoint_id. ERROR 1: Unable to query table tronfluv_id for column definitions : no such tabl e: tronfluv_id. ERROR 1: Unable to query table tronroute_id for column definitions : no such tab le: tronroute_id. ERROR 1: Unable to query table tsurf_id for column definitions : no such table: tsurf_id. ERROR 1: Unable to query table voiep_id for column definitions : no such table: voiep_id. ERROR 1: Unable to query table zoncommuni_id for column definitions : no such ta ble: zoncommuni_id.
Dernière modification par Theos2000 (Mon 19 March 2018 21:50)
Hors ligne
#10 Tue 20 March 2018 07:27
Re: Importer une base .sqlite dans une base postgre/gis
Bonjour,
On peut aussi utiliser le gestionnaire de bases de données pour importer une table SpatiaLite dans une base PostGis (Menu Base de données -> Gestionnaire de base de données.
Autre possibilité : la boite à outils (Menu Traitement -> Boîte à outils). Il faut taper import dans la case de recherche, puis lancer Importer dans PostGIS. Ça fonctionne table par table, mais on peut lancer le traitement en mode batch pour importer plusieurs tables.
Dans les deux cas, la connexion à la base PostGis doit être préalablement créée.
Christophe Damour (SIGéal)
Hors ligne
#11 Tue 20 March 2018 20:14
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
Hum, j'ai essayé avec qgis 3.0 et ca a a fait planté ma base...avec un message "trop de connections simultané", je suis bon pour bidouillé le postgresql.conf :-) , et pour le coup j'ai l'impression que le batch ne fonctionne qu'avec des tables géométriques, non ?
Si une autre idée je suis preneur
Hors ligne
#12 Wed 21 March 2018 10:00
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Importer une base .sqlite dans une base postgre/gis
Ok, de mon coté j'ai bien ces variables mais je me retrouve avec un code erreur enfin tout dépend de la commande que j'utilise, d'aillleurs laquelle pour un simple import dans un schéma est la plus appropriée ? (Pour rappel il s'agit d'importer des fichiers édigéo, que j'ai intégré dans une base spatialite)
ogr2ogr -F PostgreSQL PG:"host=localhost port=5432 user=xxx password=xx dbname=xxx" xxx.sqliteCode:
"ERROR 1: INSERT command for new feature failed. ERREUR: la valeur d'une cl├® dupliqu├®e rompt la contrainte unique ┬½ geo_section_pkey ┬╗ DETAIL: La cl├® ┬½ (ogc_fid)=(445) ┬╗ existe d├®j├á."
Vous avez une clef primaire en doublon,
vous pouvez contourner le problème en demandant à ogr2ogr de créer une nouvelle colonne
de clef primaire :
Code:
ogr2ogr -F PostgreSQL PG:"host=localhost port=5432 user=xxx password=xx dbname=xxx" xxx.sqlite -lco FID=primary_key
Hors ligne
#13 Wed 21 March 2018 19:28
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
Merci pour cette info, ca va sans doute resoudre une partie du probleme :-) Par contre mon import bloque toujours sur une erreur no such table j'ai essayer d'importer une commune histoire de creer les tables ou de mettre une option -lco overwrite=yes mais ca bloque toujours sur cette erreur ...une idée
Code:
ERROR 1: Unable to query table batiment_id for column definitions : no such tabl e: batiment_id. ERROR 1: Unable to query table borne_id for column definitions : no such table: borne_id. ERROR 1: Unable to query table boulon_id for column definitions : no such table: boulon_id. ERROR 1: Unable to query table commune_id for column definitions : no such table : commune_id. ERROR 1: Unable to query table croix_id for column definitions : no such table: croix_id. ERROR 1: Unable to query table id_s_obj_z_1_2_2 for column definitions : no such table: id_s_obj_z_1_2_2. ERROR 1: Unable to query table lieudit_id for column definitions : no such table : lieudit_id. ERROR 1: Unable to query table numvoie_id for column definitions : no such table : numvoie_id. ERROR 1: Unable to query table parcelle_id for column definitions : no such tabl e: parcelle_id. ERROR 1: Unable to query table ptcanv_id for column definitions : no such table: ptcanv_id. ERROR 1: Unable to query table section_id for column definitions : no such table : section_id. ERROR 1: Unable to query table subdfisc_id for column definitions : no such tabl e: subdfisc_id.
Hors ligne
#14 Mon 26 March 2018 21:25
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Importer une base .sqlite dans une base postgre/gis
hello, tout le monde je me permet de relancer ce post pour savoir si quelqu'un aurait eu un problème similaire (post du dessus) dans l'intégration d'une base spatialite dans postgresql., car de mon coté malgrés de nombreuses tentatives ca bloque toujours. En fait j'ai été obligé de passer par la car les fichiers édigeo plantes avec le plugin cadastre sur les communes concernées...merci pour les pistes !
Hors ligne