Daha çox

Postgres-də bir cədvəl kəsildikdən sonra niyə qgis yeniləmələrin / xüsusiyyətlərin izini itirir?


Postgis uzantısı olan bir postgres verilənlər bazasına yavaş-yavaş məlumat damcılayan bir python skriptini işləyirəm. Avtokomitdən istifadə edirəm və hər dəfə bir sıra işləyirəm. Dəhşətli dərəcədə yavaş, amma yaxşı bir səbəbdən bu şəkildə etməliyəm :)

Bir postgres qatını əlavə etdikdən sonra QGIS verilənlər bazasını tez-tez soruşur və xüsusiyyətlərin sayı artır. Bu çox yaxşıdır və mənə skriptimin işlədiyi barədə əyani rəy verir.

Şriftimi dayandırsam, pgAdminIII istifadə edərək cədvəli TRUNCATE et və skriptimi yenidən başladın, QGIS ekranı düzgün şəkildə təmizləyir (heç bir xüsusiyyət olmadığını qeyd edir). Lakin, verilənlər bazasında sonrakı dəyişiklikləri izləmək görünmür və xüsusiyyət sayı 0-dan çox olan sıra sayına uyğun gəlir. Postgres qatını yenidən əlavə etməliyəm, bu da bir müddət ala bilər.

Bu bir səhvdir, bir xüsusiyyət, yoxsa səhv bir şey edirəm?

(Ətraf mühit: QGIS 2.12.1 Pisa, Postgres 9.3.10, PostGIS 2.1.2, Ubuntu Tahr 32 bit)

Yeniləyin

Görünür ki, verilənlər bazasını kəsməmişdən əvvəl xüsusiyyətlərin sayı verilənlər bazasındakı xüsusiyyətlərin sayından çox olduqda, QGIS dəyişiklikləri yenidən izləməyə başlayır.


Bunun necə keçəcəyini öyrəndim - qatdakı bir filtrdən istifadə edinvə bütün xüsusiyyətləri əldə etməsini təmin edin.

Mənim vəziyyətimdə cədvəldə yalnız bir həndəsə var idi, id sahəsi yox idi. Adlı böyük bir sahə əlavə etdimunidkimi ...

CƏDVƏLİ təsadüfi yaradın3 (BÖYÜK İLK İLK ANAHTAR, yol həndəsi (Həndəsə, 27571)) İLƏ (OIDS = YALAN);

Sonra masaya bir filtr əlavə etdim - bu, bütün satırları göstərəcəkdir.

unid> 0

Xüsusiyyət sayını yeniləmək, kəsilmiş bir masa ilə yenidən başladığımda 0-a sıfırlanır. Filtr informasiya qutusuna 'test' vurmaq da köməkçi görünür.

Görünür ki, yerində bir filtr olmadan, QGIS, önbelleğe alınmış bir dəyəri istifadə edir təxmini sətir sayı - süzgəcin əlavə edilməsi onu yenidən hesablamağa məcbur edir.