[gdal-dev] ogr python: copying features from postgis to postgis

Stefan Ziegler stefan.ziegler.de at gmail.com
Mon Nov 28 09:19:40 PST 2016


Hi Even

thanks for the hint:

ERROR 6: CreateFeature : unsupported operation on a read-only datasource.
ERROR 6: CreateFeature : unsupported operation on a read-only datasource.
ERROR 6: CreateFeature : unsupported operation on a read-only datasource.
ERROR 6: CreateFeature : unsupported operation on a read-only datasource.
ERROR 6: CreateFeature : unsupported operation on a read-only datasource.
ERROR 6: CreateFeature : unsupported operation on a read-only datasource.

I didn't know that default setting is read-only mode. Changing to
"ogr.Open(dstConnString, 1)" works like a charm.

regards
Stefan

On Mon, Nov 28, 2016 at 12:02 AM, Even Rouault <even.rouault at spatialys.com>
wrote:

> On samedi 26 novembre 2016 21:18:50 CET Stefan Ziegler wrote:
>
> > Hi
>
> >
>
> > I'm trying to copy some features from one postgis table to another
> postgis
>
> > table:
>
> >
>
> > dstLayer.StartTransaction()
>
> >
>
> > srcFeature = srcLayer.GetNextFeature()
>
> > while srcFeature is not None:
>
> > srcLayerDefn = srcLayer.GetLayerDefn()
>
> >
>
> > dstLayerDefn = dstLayer.GetLayerDefn()
>
> > dstFeature = ogr.Feature(dstLayerDefn)
>
> > dstFeature.SetFID(-1)
>
> >
>
> > for i in range(0, dstLayerDefn.GetFieldCount()):
>
> > attrName = dstLayerDefn.GetFieldDefn(i).GetNameRef()
>
> >
>
> > # ATTRIBUTES
>
> > try:
>
> > attrVal = srcFeature.GetField(attrName)
>
> > dstFeature.SetField(attrName, attrVal)
>
> > except ValueError:
>
> > pass
>
> >
>
> > # GEOMETRY
>
> > geom = srcFeature.GetGeometryRef()
>
> > dstFeature.SetGeometry(geom)
>
> >
>
> > # ADD FEATURE
>
> > dstLayer.CreateFeature(dstFeature)
>
> >
>
> > srcFeature = srcLayer.GetNextFeature()
>
> >
>
> > dstLayer.CommitTransaction()
>
> >
>
> > It throws an error when trying to create the new feature:
>
> >
>
> > GNM: GNMRegisterAllInternal
>
> > GNM: RegisterGNMFile
>
> > GNM: RegisterGNMdatabase
>
> > PG: DBName="xanadu2"
>
> > PG: PostgreSQL version string : 'PostgreSQL 9.5.4 on x86_64-pc-linux-gnu,
>
> > compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit'
>
> > PG: PostGIS version string : '2.2 USE_GEOS=1 USE_PROJ=1 USE_STATS=1'
>
> > GDAL: GDALOpen(PG: host=localhost dbname=xanadu2 user=stefan
>
> > password=XXXXXXXXXX this=0x11e41b0) succeeds as PostgreSQL.
>
> > PG: Command Results Tuples = 11
>
> > GDAL: GDALDriver::Create(Memory,,0,0,0,Unknown,(nil))
>
> > PG: 11 features read on layer 'sql_statement'.
>
> > PG: DBName="xanadu2"
>
> > PG: PostgreSQL version string : 'PostgreSQL 9.5.4 on x86_64-pc-linux-gnu,
>
> > compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit'
>
> > PG: PostGIS version string : '2.2 USE_GEOS=1 USE_PROJ=1 USE_STATS=1'
>
> > GDAL: GDALOpen(PG: host=localhost dbname=xanadu2 user=stefan
>
> > password=XXXXXXXXXX this=0x12db330) succeeds as PostgreSQL.
>
> > PG: Primary key name (FID): t_id, type : int8
>
> > PG: Using column 't_id' as FID for table
>
> > 'nachfuehrngskrise_nachfuehrungskreis'
>
> > Traceback (most recent call last):
>
> > File "./datenumbau.py", line 117, in <module>
>
> > dstLayer.CreateFeature(dstFeature)
>
> > File "/usr/local/gdal_master/lib/python2.7/site-packages/osgeo/ogr.py",
>
> > line 1479, in CreateFeature
>
> > return _ogr.Layer_CreateFeature(self, *args)
>
> > RuntimeError: OGR Error: General Error
>
> > GDAL: GDALClose(PG: host=localhost dbname=xanadu2 user=stefan
>
> > password=XXXXXXXXXX this=0x12db330)
>
> > GDAL: GDALClose(PG: host=localhost dbname=xanadu2 user=stefan
>
> > password=XXXXXXXXXX this=0x11e41b0)
>
> > GDAL: In GDALDestroy - unloading GDAL shared library.
>
> > GDAL: Force close of (0x136abb0) in GDALDriverManager cleanup.
>
> > Mem: 1 features read on layer 'sql_statement'.
>
> >
>
> > I'm bit confused about the "general error". Does anyone has an idea?
>
>
>
> What if you don't enable python exceptions from GDAL errors (ie don't call
> gdal.UseExceptions(), or use gdal.DontUseExceptions()). Do you get
> something more verbose ?
>
>
>
> >
>
> > regards
>
> > Stefan
>
>
>
>
>
> --
>
> Spatialys - Geospatial professional services
>
> http://www.spatialys.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20161128/41509a41/attachment.html>


More information about the gdal-dev mailing list