The PyQGIS cookbook states that QgsVectorFileWriter can write vector layers to any format supported by OGR:
https://www.qgis.org/en/docs/pyqgis_developer_cookbook/vector.html#writing-vector-layers
However when I try this I get an error (based on the .source() of an existing layer):
error = QgsVectorFileWriter.writeAsVectorFormat(layer, u'dbname=\'snorf\' host=localhost port=5432 user=\'snorf\' sslmode=disable key=\'id\' srid=4326 type=POINT table="public"."mynewlayer" (the_geom) sql=', 'UTF-8', layer.crs(), 'PostgreSQL')This returns QgsVectorFileWriter.ErrCreateDataSource.
I don't have any problems modifying existing PostgreSQL layers, and I can write a new layer to the database using ogr2ogr without issue.
أكثر...
https://www.qgis.org/en/docs/pyqgis_developer_cookbook/vector.html#writing-vector-layers
However when I try this I get an error (based on the .source() of an existing layer):
error = QgsVectorFileWriter.writeAsVectorFormat(layer, u'dbname=\'snorf\' host=localhost port=5432 user=\'snorf\' sslmode=disable key=\'id\' srid=4326 type=POINT table="public"."mynewlayer" (the_geom) sql=', 'UTF-8', layer.crs(), 'PostgreSQL')This returns QgsVectorFileWriter.ErrCreateDataSource.
I don't have any problems modifying existing PostgreSQL layers, and I can write a new layer to the database using ogr2ogr without issue.
- How do I create a new empty postgres layer?
- How do I save an existing layer into a postgres database?
أكثر...