Става. Но си го написах на перлата.

Georgi Chorbadzhiyski wrote:

Daniel Ivanov wrote:
Изникна един въпрос. След като инкрементиран ъпдейт не е решение за една база, защото старите данни са модифицирани до неузнаваемост ми се иска да знам дали има лесен начин за TRUNCATE на всяка таблица в дадена схема.

Има.

#!/bin/sh

PGHOST="db"
PGDATABASE="test"
PGUSER="user"
PGPASSWORD="pass"

export PGHOST PGDATABASE PGUSER PGPASSWORD

PATH="/usr/bin:/usr/local/bin:/usr/local/pgsql/bin"
PSQL=`which psql`

tables=`$PSQL -t $PGDATABASE -c "SELECT DISTINCT
   c.oid::pg_catalog.regclass
FROM
   pg_catalog.pg_index x
   JOIN pg_catalog.pg_class c ON c.oid = x.indrelid
   JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid
WHERE nspname NOT LIKE 'pg\\\\_%'"`

IFS='
'

for table in $tables; do
  $PSQL $PGDATABASE -c "TRUNCATE $table"
done

Reply via email to