Según la shp2pgsql
ayuda, las opciones de descartar , agregar , crear y preparar son mutuamente excluyentes. Entonces, si quiero crear una tabla a partir de una forma y luego agregar varios otros archivos de forma, hago algo como lo siguiente, manteniendo un contador para indicar si estamos en modo de creación o anexión.
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
Esto funciona, como se esperaba, pero a menudo me he preguntado si hay una manera más simple.