mirror of https://github.com/postgres/postgres
parent
013c2c65e0
commit
5d547cd236
@ -1,65 +0,0 @@ |
||||
#!/bin/sh |
||||
# |
||||
# pg_dumpaccounts |
||||
# dumps the pg_shadow and pg_group tables, which belong to the |
||||
# whole installation rather than any one individual database. |
||||
# |
||||
# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpaccounts,v 1.1.2.1 2000/11/02 16:54:21 wieck Exp $ |
||||
# |
||||
# to adapt to System V vs. BSD 'echo' |
||||
if echo '\\' | grep '\\\\' >/dev/null 2>&1 |
||||
then |
||||
BS='\' # BSD |
||||
else |
||||
BS='\\' # System V |
||||
fi |
||||
# |
||||
# Dump everyone but the postgres user |
||||
# initdb creates him |
||||
# |
||||
# get the postgres user id |
||||
# |
||||
POSTGRES_SUPER_USER_ID="`echo \" \ |
||||
select datdba \ |
||||
from pg_database \ |
||||
where datname = 'template1'; \" | \ |
||||
psql -A -q -t template1`" |
||||
echo "${BS}connect template1" |
||||
# |
||||
# delete all users in case they run this twice |
||||
# |
||||
# we don't use POSTGRES_SUPER_USER_ID because the postgres super user id |
||||
# could be different on the two installations |
||||
# |
||||
echo "select datdba into table tmp_pg_shadow \ |
||||
from pg_database where datname = 'template1';" |
||||
echo "delete from pg_shadow where usesysid <> tmp_pg_shadow.datdba;" |
||||
echo "drop table tmp_pg_shadow;" |
||||
# |
||||
# load all the non-postgres users |
||||
# XXX this breaks badly if the layout of pg_shadow ever changes. |
||||
# It'd be better to convert the data into CREATE USER commands. |
||||
# |
||||
echo "copy pg_shadow from stdin;" |
||||
psql -q template1 <<END |
||||
select pg_shadow.* |
||||
into table tmp_pg_shadow |
||||
from pg_shadow |
||||
where usesysid <> $POSTGRES_SUPER_USER_ID; |
||||
copy tmp_pg_shadow to stdout; |
||||
drop table tmp_pg_shadow; |
||||
END |
||||
echo "${BS}." |
||||
# |
||||
# copy the pg_group table too |
||||
# XXX this breaks badly if the layout of pg_group ever changes. |
||||
# It'd be better to convert the data into CREATE GROUP commands. |
||||
# |
||||
echo "delete from pg_group;" |
||||
echo "copy pg_group from stdin;" |
||||
psql -q template1 <<END |
||||
copy pg_group to stdout; |
||||
END |
||||
echo "${BS}." |
||||
|
||||
exit 0 |
||||
Loading…
Reference in new issue