Skip to content

Instantly share code, notes, and snippets.

@george-silva
Created July 11, 2014 13:22
Show Gist options
  • Save george-silva/2dae52f78f4f5dc5489f to your computer and use it in GitHub Desktop.
Save george-silva/2dae52f78f4f5dc5489f to your computer and use it in GitHub Desktop.
exportação em lote postgis
#!/bin/bash
# forma de uso ./exportar <host> <porta> <nome_do_banco_de_dados> <usuario> <senha> <caminho> <formato>
# este script depende de: lib32z1 lib32ncurses5 lib32bz2-1.0 e filegdbapi
export SHAPE_ENCODING="ISO-8859-1"
SERVIDOR=$1
PORTA=$2
BANCO_DADOS=$3
USUARIO=$4
SENHA=$5
CAMINHO_SAIDA=$6
FORMATO=$7
SEPARADOR="--------------------------------------------------"
echo "configurando postgresql"
set PGPASSWORD=$5
set PGCLIENTENCODING=latin1
echo "listando camadas de interesse"
psql -h $SERVIDOR -p $PORTA -U $USUARIO -d $BANCO_DADOS -P 'format=unaligned' --field-separator=";" -t -c "SELECT nome_tabela, nome_view, gc.type FROM camada, geometry_columns gc WHERE exportar IS TRUE AND nome_view IS NOT NULL AND nome_tabela = f_table_name" > exportar.temp
IFS=$'\n'
echo $SEPARADOR
echo "iniciando processamento"
echo $SEPARADOR
for linha in `cat ./exportar.temp`
do
IFS=\;
read -a CAMPOS <<< "$linha"
NOME_TABELA=${CAMPOS[0]}
NOME_VIEW=${CAMPOS[1]}
LAYER_TYPE=${CAMPOS[2]}
IFS=$'\n'
echo "processando "$NOME_TABELA
CONTADOR_FEICOES=$(psql -h $SERVIDOR -p $PORTA -d $BANCO_DADOS -U $USUARIO -t -c "SELECT count(*) FROM $NOME_VIEW;")
if [ ! $CONTADOR_FEICOES -eq 0 ]; then
echo "existem $CONTADOR_FEICOES feicoes na view $NOME_TABELA. exportando..."
if [ "$FORMATO" = "fgdb" ]; then
sh ex_fgdb.sh $SERVIDOR $PORTA $BANCO_DADOS $USUARIO $SENHA $CAMINHO_SAIDA $NOME_TABELA $NOME_VIEW $LAYER_TYPE
else
sh ex_shp.sh $SERVIDOR $PORTA $BANCO_DADOS $USUARIO $SENHA $CAMINHO_SAIDA $NOME_TABELA $NOME_VIEW
fi
else
echo "nao existem feicoes para $NOME_VIEW"
fi
echo $SEPARADOR
done
echo "exportacao concluida. limpando arquivos temporarios"
rm -rf exportar.temp
unset IFS
unset PGPASSWORD
echo "exportacao finalizada"
echo $SEPARADOR
echo $SEPARADOR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment