पोस्टगिस के लिए कई आकार के भार बैच


11

shp2pgsqlसहायता के अनुसार , विकल्प ड्रॉप , एपेंड , क्रिएट और तैयार पारस्परिक रूप से अनन्य हैं। इसलिए, यदि मुझे किसी आकृति से एक तालिका बनानी है और फिर कई अन्य आकृति-रेखाओं को जोड़ना है, तो मैं निम्नलिखित की तरह कुछ करता हूं, यह इंगित करने के लिए एक काउंटर रखता है कि हम क्रिएट या अपेंड मोड में हैं या नहीं।

cnt=0
for shp in $(ls *.shp); do

if [ $cnt -eq  0 ]  ; then

   shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db 

else

   shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db 

fi
((cnt++))
done

यह काम करता है, जैसा कि अपेक्षित था, लेकिन मैंने अक्सर सोचा है कि क्या कोई सरल तरीका है?

जवाबों:


4

यदि आप ogr2ogr का उपयोग करने में सक्षम हैं, तो यह एप बनाते समय विकल्पों को अनदेखा करेगा, और बनाते समय एपेंड विकल्पों को नजरअंदाज करेगा।

for shp in $(ls *.shp);
do
  ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -a_srs 27700 -nln schema.table_name $shp
done

या कमांड लाइन में विंडो में:

for /R %f in (*.shp) do ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -nln schema.table_name "%f"

1
ज़रूर, ogr2ogr काम करता है। सोचा कि एक सरल उपाय होगा। धन्यवाद
जॉन पॉवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.