Согласно 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
Это работает, как и ожидалось, но я часто задавался вопросом, есть ли более простой способ?