Monday, 6 November 2017

qgis - Adding field to PostGIS Layer with PyQGIS


I'm having trouble adding a field to a PostGIS table using PyQGIS. Here's my code:


from PyQt4.QtCore import QVariant
from qgis.core import *

inLayer = iface.activeLayer()
provider = inLayer.dataProvider()

# add field

field = QgsField('test_field', QVariant.String)
inLayer.startEditing()
provider.addAttributes([field])
inLayer.updateFields()

# commit
inLayer.commitChanges()

The commit fails and the PostGIS log shows an error:




2015-10-27T08:13:28 1 Erroneous query: ALTER TABLE "received"."env" ADD COLUMN "test_field" returned 7 [ERROR: syntax error at end of input


LINE 1: ALTER TABLE "received"."env" ADD COLUMN "test_field"



Seems the call to PostGIS fails to include the column type. Is this a bug, or am I going about this the wrong way?




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...