Re: How do you backup functions only?

Lists: pgsql-novice
From: "Andrew Walmsley" <andrew(dot)walmsley(at)ttsltd(dot)com>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: How do you backup functions only?
Date: 2006-02-27 13:42:48
Message-ID: B67C1491364AE5468606C90374E790F31C07BD@cerberus.preston.traveltech.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-novice

We have a reasonably sized postgres database where we want to make
coding changes to the functions within it.
Before we alter the functions, it would be a good idea to backup the
current functions in the database. The database itself is too large to
do a full backup every time we make a coding change.
We currently use the following script to backup (some of the) functions.

bash-3.00$ cat backup_phpcron.sh
DATE=`date "+%Y%m%d"`

if [ -r phpcron-$DATE.sql.gz ]
then
echo "ABORTED phpcron-$DATE.sql.gz already exists"
exit 1
fi

psql -At <<-'!' | gzip -c > phpcron-$DATE.sql.gz || exit 1
\df+ avail_oneway
\df+ avail_return
\df+ clear_flightdata
\df+ clear_flightdata_update
\df+ load_flights
\df+ load_flights_update
\df+ load_prices
\df+ load_prices_update
\df+ load_routes
\df+ prepare_avlpkgs
\df+ prepare_avlpkgs_update
!

This creates a non-restorable snapshot of the functions. Is there a way
to output the functions (only) so that they can be restored in one easy
operation if there is an error in the new code? An option to pg_dump
that I have missed perhaps?

Thanks in advance.

--
Andrew Walmsley
Software Development
Travel Technology Systems Ltd.
2 Nile Close, Riversway
Preston, PR2 2XU
Tel: 01772 766800
Fax: 01772 766801

(please note the new address and contact number)

This Email may contain information of a confidential and/or privileged
nature.
The information transmitted is intended only for the benefit of the
person or entity to which it is addressed and must not be copied or
forwarded without the sender's express permission.
This Email does not reflect the views or opinions of Travel Technology
Systems Ltd.
This Email is without prejudice.
This Email does not constitute an agreement either explicitly or
implicitly with Travel Technology Systems Ltd.


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Andrew Walmsley" <andrew(dot)walmsley(at)ttsltd(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: How do you backup functions only?
Date: 2006-02-27 15:44:59
Message-ID: 19489.1141055099@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-novice

"Andrew Walmsley" <andrew(dot)walmsley(at)ttsltd(dot)com> writes:
> This creates a non-restorable snapshot of the functions. Is there a way
> to output the functions (only) so that they can be restored in one easy
> operation if there is an error in the new code? An option to pg_dump
> that I have missed perhaps?

No, but I'd still recommend using "pg_dump -s -Fc" to backup the
complete database schema including the functions. A semi-automated
way to extract just the functions from such a dump is to use
pg_restore -l, grep the output for FUNCTION, then feed the resulting
list into pg_restore -L.

regards, tom lane