ব্যাচ পোস্টপিসে একাধিক শেফফিল লোড করে


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 কাজ করে। একটি সহজ সমাধান হবে অনুমিত। ধন্যবাদ
জন পাওয়েল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.