Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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: 1159

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: 1159

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: 1159

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: 1159

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

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

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: 1159

Re: Importer une base .sqlite dans une base postgre/gis

Theos2000 a écrit:

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├á."


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

 

Pied de page des forums

Powered by FluxBB