pg_dumpall 782 字节
Newer Older
B
Bruce Momjian 已提交
1 2 3 4 5 6
#!/bin/sh
#
# pg_dumpall [pg_dump parameters]
# dumps all databases to standard output
# It also dumps the pg_user table
#
7
psql -l -A -q -t|cut -d"|" -f1 | grep -v '^template1$' | \
B
Bruce Momjian 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
while read DATABASE
do
	/bin/echo '\connect template1'
	/bin/echo "create database $DATABASE;"
	/bin/echo '\connect' "$DATABASE"
	pg_dump "$@" $DATABASE
done
/bin/echo '\connect template1'
/bin/echo 'copy pg_user from stdin;'
#
# Dump everyone but the postgres user
# initdb creates him
#
POSTGRES_SUPER_USER_ID="`psql -q template1 <<END
\\t
select datdba 
from pg_database
where datname = 'template1';
END`"
psql -q template1 <<END
select pg_user.* into table tmp_pg_user
from pg_user
where usesysid <> $POSTGRES_SUPER_USER_ID;
copy tmp_pg_user to stdout;
drop table tmp_pg_user;
END
/bin/echo '\.'