Thread: Dump tables with pg_dump - no or different Owner

Dump tables with pg_dump - no or different Owner

From
Victor Spång Arthursson
Date:
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


Re: Dump tables with pg_dump - no or different Owner

From
Alex Satrapa
Date:
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