Saya ingin mengganti nama salah satu tabel postGIS saya. Namun, ketika saya melakukan ini dengan menerapkan yang sederhana
ALTER TABLE old_name RENAME TO new_name;
Data spasial, seperti yang saya mengerti, tidak diperbarui dengan nama baru. Pertama, bisakah referensi ini diperbaiki dengan menjalankan fungsi:
SELECT probe_geometry_columns()
Apakah tabel itu sendiri tidak masalah setelah ini? Atau haruskah langkah-langkah lain diambil juga? Kedua, bagaimana saya memperbarui GeoServer sehingga menemukan tabel baru ini? Sampai sekarang, jika saya menjalankan perintah di atas, dan mengedit info lapisan pada GeoServer untuk menunjuk ke nama baru ... Saya masih mendapatkan kesalahan (GeoServer masih mencoba menemukannya di bawah nama lama). Tepatnya, di mana seharusnya nama layer diubah pada GeoServer?
sumber
Not Found The requested URL /latest/en/user/restconfig/rest-config-api.html was not found on this server.
Perhatikan bahwa di PostGIS 2.0+, yang harus Anda lakukan adalah normal
Entri dalam tampilan geometry_columns (atau geography_columns) juga akan diperbarui.
sumber
adalah utilitas praktis.
Pertama, ketika kita menambahkan kolom geometri ke tabel yang ada dengan
kita memberi makan fungsi semua yang diperlukan untuk menempelkan kolom tipe geometri (geo_column) ke tabel yang ditentukan (my_table) dan menulis detail penting seperti SRID (1234), tipe geometri (MULTIPOINT) dan jumlah dimensi (2) untuk tabel geometry_columns. Intinya, ini adalah ALTER dan tiga PEMBARUAN.
Membuat kolom geometri dengan cara lain (diambil dari shapefile, dipilih dalam CREATE TABLE AS, dll.) Dapat mengarah ke tabel spasial yang tidak terlihat oleh aplikasi eksternal, meskipun mereka bekerja dengan baik dalam database. Tanpa detail yang tepat disimpan dalam geometry_columns, nilai-nilai geometri aktual muncul sebagai string karakter yang tidak masuk akal untuk aplikasi yang mencari titik, garis, atau poligon yang diproyeksikan.
Memanggil fungsi probe memeriksa setiap kolom dari tipe geometri, menambahkan nilai baru ke geometry_columns dan melaporkan konflik.
Berputar kembali ke pertanyaan Anda, GeoServer tidak percaya tabel berganti nama berisi data spasial jika perubahan nama tidak tercermin dalam geometry_columns. Hal lain yang perlu dipertimbangkan adalah bahwa fungsi probe membuat catatan duplikat yang mencerminkan nama tabel baru tetapi tidak menghilangkan catatan asli - potensi lain untuk GeoServer.
Semua yang mengatakan, saya akan menyarankan Anda: 1) jalankan probe kemudian segera hapus catatan lama; atau 2) ikuti perubahan nama Anda dengan ALTER di geometry_columns untuk mengubah nilai f_table_name.
Maaf atas kata-katanya, tapi saya harap ini membantu.
sumber
Saya tidak yakin apa yang dilakukan SELECT probe_geometry_columns (), tetapi Anda dapat dengan mudah memeriksa tabel geometry_columns untuk melihat apakah nama tabel baru Anda ada di sana atau apakah masih menunjuk ke yang lama.
Saya menduga Anda perlu memuat ulang toko GeoServer untuk memastikannya "memperhatikan" perubahan. Atau berhenti dan mulai akan melakukannya.
sumber