if [ "$1" = "" ]; then echo "Debe Digitar Base de Datos (aexpxport )" else if (test -s $1.exp); then echo "Directorio de exportacion ya existe ...($1.exp)" else mkdir -p $1.exp chmod 777 $1.exp cd $1.exp echo "\o systab.out" >tab.sql echo "\a " >>tab.sql echo "\t " >>tab.sql echo "select tabname from systables where substr(tabname,1,2)!='pg';" >>tab.sql >$1.sql >$1.down DL=\| DL=, echo "Delimitador: $DL " sleep 2 psql -d $1 -f tab.sql -q echo "systables " >>systab.out echo "sysusers " >>systab.out echo "sysindexes " >>systab.out echo "syscolumns " >>systab.out for t in `cat systab.out` do pg_dump $1 -t $t -f $t.sql -s awk -v path=$PWD -v deli=$DL '{ swctab=substr($0,1,12) if (swctab=="CREATE TABLE") { tab=substr($0,14,15) vr=1 } swview=substr($0,1,11) if (swview=="CREATE VIEW") { vv=1 vr=0 } swendv=substr($0,1,11) if (swendv=="ALTER TABLE") { if (vv=="1") { vv=0 } } vrow=substr($0,1,200) if (vv=="1") { print vrow } vrow=substr($0,1,180) if (vr=="1") { print vrow } swctab=substr($0,1,2) if (swctab==");") { print "" print "COPY " tab " from " "X" path "/" tab "X" " using delimiters X" deli "X with null as XX;" vr=2 } if (vr=="2") { print "" print "" vr=0 } }' $t.sql > $1.sq2; cp -f $1.sq2 $1.sq3 echo "sed -e \"s/( from/ from/g\" < $1.sq3 >$1.sq2" >dep.sh sh dep.sh cp -f $1.sq2 $1.sq3 echo "sed -e \"s/ (X/\.unl\'/g\" < $1.sq3 >$1.sq2" >dep.sh sh dep.sh cp -f $1.sq2 $1.sq3 echo "sed -e \"s/X/\'/g\" < $1.sq3 >$1.sq2" >dep.sh sh dep.sh mv -f $1.sq2 bajar.sql grep 'INDEX' $t.sql |grep CREATE >>bajar.sql cat bajar.sql cat bajar.sql >>$1.sql grep 'INDEX' $t.sql |grep CREATE >>$1.sql rm -f $t.sql cp bajar.sql $t.imp grep 'COPY' bajar.sql >$1.sq3 echo "sed -e \"s/ from / to /g\" < $1.sq3 >$1.sq2" >dep.sh sh dep.sh cp -f $1.sq2 $1.sq3 echo "sed -e \"s/ with null as ''//g\" < $1.sq3 >$1.sq2" >dep.sh sh dep.sh mv -f $1.sq2 download.sql rm -f dep.sh psql -d $1 -f download.sql cat download.sql >>$1.down #break done rm -f $t.sql $1.sq3 $i.sq2 bajar.sql download.sql rm -f systab.out echo "" echo "adbexport completed" echo "" fi fi