Bagaimana cara me-refresh tabel atribut layer setelah mengedit tabel di DB-Manager?

14

Apakah ada cara untuk me-refresh tabel atribut layer setelah mengedit tabel (misalnya menambahkan kolom) di DB-Manager?

Laut Bulan
sumber
plugin changeDataSource adalah cara tercepat dan bekerja sangat baik dengan file .csv
scataldi

Jawaban:

13

Pendek dan manis:

  1. Instal plugin changeDataSource .
  2. Klik kanan pada layer di Layers Panel dan pilih Change vector datasource.
  3. Di kotak dialog yang muncul, tekan saja OKtanpa mengubah salah satu pengaturan.

Pada dasarnya, Anda "mengubah" sumber data vektor ke apa yang sudah ada sebelumnya, tetapi ini memaksa QGIS untuk memuat ulang definisi layer.

Diuji dalam QGIS 2.14 pada Linux Mint 17.2.

Lee Hachadoorian
sumber
Saya harus memilih ulang sumber data yang sama agar dapat berfungsi.
sladstaetter
4

Dengan asumsi bahwa Anda bekerja dengan database PostGIS, Anda dapat memperbarui statistik tabel minat dengan menggunakan ANALYSEfungsi: http://www.postgresql.org/docs/current/static/sql-analyze.html

Dalam kasus Anda, Anda dapat menjalankan pernyataan di dalam DB-manager dengan menekan tombol yang ditandai pada gambar terlampir dan mengeksekusi ANALYSEpernyataan di jendela, yang juga ditandai. Kueri akan menjadi ANALYSE yourschema.yourtable. Perintah analisis harus memperbarui tabel Anda, sehingga ketika Anda mengakses kembali informasi itu harus mencerminkan perubahan yang telah Anda buat. Jendela manajer DB

JonasPedersen
sumber
1
Ini tidak me-refresh tabel atribut (klik kanan pada layer -> Open Attribute Table).
Laut Bulan
2

Apakah saya mengerti dengan baik jika Anda bermaksud me-refresh tabel di QGIS setelah perubahan pada kolom dibuat?

Sejauh yang saya tahu, hanya menutup dan membuka proyek atau menambahkan kembali tabel akan membuat ini terjadi. Selama Anda menyimpan gaya default di database yang mungkin merupakan cara tercepat.

Ketika kolom ditambahkan dengan Kalkulator Bidang, perubahannya langsung terlihat tetapi manajer DB menawarkan lebih banyak kontrol dalam menentukan jenis bidang jadi saya mengerti mengapa itu mungkin bukan solusi.

nielsgerrits
sumber
Apakah ada perintah Python untuk me-refresh tabel atribut? Saya juga memperhatikan bahwa 'Tampilkan Hitungan Fitur' mengabaikan perubahan yang dibuat di DB-Manager (menambah fitur / menghapus fitur).
Laut Bulan
3
layer.dataProvider().forceReload()harus melakukan triknya
Matthias Kuhn