Dump tables with pg_dump - no or different Owner

Started by Victor Spång Arthurssonabout 22 years ago2 messagesgeneral
Jump to latest

Hi!

Have a problem, probably easy to solve... I want to dump a database
which resides on my local server with another, and not existing, owner
than the one who actually owns it locally.

The beginning of the dump file looks like:

########
\connect - postgres

SET search_path = public, pg_catalog;

--
-- TOC entry 2 (OID 16978)
-- Name: ingrediens; Type: TABLE; Schema: public; Owner: postgres
########

I want all instances of "postgres" to be changed in the dump (only) to
for example "anotheruser" (which will be the one on the remote server).

I'm having problem dumping from the first to the second server, and
suspects that the differing owners can be the key to solve the
problem...

In advance, lots of thanks,
sincerely:

Victor

#2Alex Satrapa
alex@lintelsys.com.au
In reply to: Victor Spång Arthursson (#1)
Re: Dump tables with pg_dump - no or different Owner

Victor Sp�ng Arthursson wrote:

Have a problem, probably easy to solve... I want to dump a database
which resides on my local server with another, and not existing, owner
than the one who actually owns it locally.

If the whole database is going to be owned by one user, try dumping the
tables like this:

pg_dump --no-privileges --no-owner --no-reconnect ... > tables.sql

Then load the tables as the new owner on the new database.

An alternative is to process the SQL dump using perl:

perl -p -i -e 's/old-owner-name/new-owner-name/g' tables.sql

HTH
Alex Satrapa