Saat ini saya sedang menyiapkan instalasi baru PostGIS 2.0.2 dan PostgreSQL 9.1.6 di Ubuntu. Baru-baru ini saya menemukan beberapa informasi yang menunjukkan bahwa menggunakan skema publik untuk menyimpan semua data bukanlah ide yang baik.
Untuk alasan ini, saya telah menyiapkan skema yang disebut data dan menjadikan saya pemiliknya, tetapi apakah itu ide yang bagus?
Kekhawatiran saya adalah:
- Selain mengatur pemilik, saya mungkin perlu memperhatikan hal-hal pada tab Privileges saat membuat skema baru ini (melalui pgAdmin III);
- Saya mungkin tidak mendapatkan manfaat yang sama dengan menyimpan data saya di skema publik dan membuang semua data ke skema terpisah sebelum melakukan backup / restore (ini akan menghemat beberapa penekanan tombol saat menggunakan ogr2ogr); dan
- Saya mungkin mengalami masalah dengan tidak memiliki tabel dan tampilan PostGIS default dalam skema data baru saya (mereka berada dalam skema publik dalam database yang sama).
public
skema. Pertanyaan lain itu adalah tentang menginstal objek ekstensi PostGIS ke dalam skema selainpublic
. Ini adalah dua hal yang berbeda!Jawaban:
Ini sekarang ditujukan pada situs resmi di halaman berjudul Pindahkan ekstensi PostGIS ke skema lain . Metode yang benar adalah menginstal ekstensi
public
. Ini satu-satunya pilihan. Ekstensi tidak lagi mendukung relokasi. Hal berikutnya adalah menjalankan perintah berikut, (disalin dari situs),sumber
data
skema baru saya (mereka ada dalampublic
skema dalam database yang sama)". Jawaban ini bermanfaat, dan itulah yang saya cari, tetapi tidak terkait langsung dengan pertanyaan.Ketika Anda secara spasial mengaktifkan database PostGIS, fungsi yang relevan, tabel SRS, dan tampilan ditempatkan dalam skema publik, seperti yang Anda nyatakan. Itu tidak berarti bahwa semua atau semua tabel spasial Anda harus dalam skema publik yang sama. PostGIS masih akan bekerja pada semua data spasial dalam skema "baru".
Bahkan, saya biasanya menempatkan tabel khusus aplikasi saya dalam skema terpisah. Dengan begitu, jika Anda perlu melakukan peningkatan versi utama ke PostGIS, Anda dapat menyimpan cadangan tabel khusus aplikasi dan memulihkannya sebagai prosedur terpisah dari prosedur yang menggantikan alat spasial.
Jadi, saya pikir Anda baik-baik saja. Terakhir, jika Anda belum melakukannya, sebaiknya tambahkan skema baru ke jalur pencarian:
ALTER DATABASE my_db SET search_path = gc, public;
sumber
public
? Menambahkan data dengan mis.shp2psql
untuktest.table
tetap memasukkan datapublic
?Salah satu strategi organisasi yang dapat Anda bangun dengan skema adalah untuk memungkinkan pengguna untuk merajalela dalam satu skema, tetapi tidak dapat merusak hal-hal lain. Jadi, jika Anda ingin menggunakan skema dengan cara ini, itu bisa dilakukan di tab privilege pgAdmin. Tapi itu tidak mengharuskan Anda melakukan itu, jadi jika Anda hanya ingin mempertahankan hak yang sama di beberapa skema, itu bagus.
Berdasarkan artikel yang Anda tautkan, masalah dengan menjaga segala sesuatu di depan umum adalah ketika Anda membuang data, Anda cenderung mendapatkan tabel sistem dan hubungan yang dicampur dengan data Anda. Jika Anda memindahkan semua data Anda ke skema baru, Anda tidak perlu khawatir tentang itu lagi.
Tidak ada masalah sama sekali. (Sebagai bukti, perhatikan bahwa Anda tidak harus menentukan public.spatial_ref_sys saat Anda ingin mencari tabel SRS.)
sumber
Satu tip tambahan (mungkin Anda sudah menemukan ini). Anda mungkin ingin menambahkan skema "data" ke search_path default pengguna. Sesuatu seperti:
Mengenai poin 2 Anda, kadang-kadang Anda perlu memulihkan ketika Anda tidak lagi memiliki akses ke DB asli. (Itulah salah satu alasan cadangan ...) sehingga Anda mungkin tidak memiliki kesempatan untuk memindahkan data ke skema terpisah saat Anda benar-benar membutuhkannya.
sumber
Kami menggunakan skema publik untuk hasil analisis sementara / tabel dev, lalu masuk ke skema (folder?) Yang lebih terorganisir untuk penggunaan permanen.
sumber