Lagi

Menambahkan bidang ke Layer PostGIS dengan PyQGIS

Menambahkan bidang ke Layer PostGIS dengan PyQGIS


Saya mengalami masalah saat menambahkan bidang ke tabel PostGIS menggunakan PyQGIS. Berikut kode saya:

dari PyQt4.QtCore impor QVariant dari qgis.core import * inLayer = iface.activeLayer() provider = inLayer.dataProvider() # tambahkan field field = QgsField('test_field', QVariant.String) inLayer.startEditing() provider.addAttributes( [bidang]) inLayer.updateFields() # komit inLayer.commitChanges()

Komit gagal dan log PostGIS menunjukkan kesalahan:

2015-10-27T08:13:28 1 Kueri yang salah: ALTER TABLE "received"."env" ADD COLUMN "test_field" kembali 7 [ERROR: sintaks error di akhir input

LINE 1: ALTER TABLE "diterima"."env" TAMBAHKAN KOLOM "test_field"

Tampaknya panggilan ke PostGIS gagal memasukkan tipe kolom. Apakah ini bug, atau apakah saya melakukan ini dengan cara yang salah?


Jika Anda perlu menambahkan kolom baru di layer Anda dari Postgis, gunakan ini:

layer = iface.activeLayer() name_column = "new_column" layer.dataProvider().addAttributes([QgsField(name_column, QVariant.String, "VARCHAR")]) layer.updateFields()

Tonton videonya: QGIS Python PyQGIS - Add layer to a map layout