Re: Restoring a table with a different name - Mailing list pgsql-general

From Jim Wilson
Subject Re: Restoring a table with a different name
Date
Msg-id twig.1077934866.21883@kelcomaine.com
Whole thread Raw
In response to Re: Restoring a table with a different name  (Mike Nolan <nolan@gw.tssi.com>)
List pgsql-general
Mike Nolan said:

> > > If I edit the dump file with 'sed' to change the table name, I get
> > > 'invalid command \N' errors trying to reload it.
> >
> > What sed syntax are you using?
>
> Here's the command line I used:
>
>    sed -e 's/memmast/wk_memmast/' memmast.dmp > wk_memmast.dmp
>
> I see two potential problems here, and it took both of them to bite me.
>
> One is that I'm not changing all occurrences of 'memmast' to 'wk_memmast'.
> The other is that the string 'memmast' can and does occur within the
> name of another column, so the name of that column was edited by sed
> in the CREATE TABLE statement but not in the LOAD command.
>
> Changing the command line to:
>
>    sed -e 's/ memmast / wk_memmast /' memmast.dmp > wk_memmast.dmp
>
> works, and without changing that column name.
>
> I think, however, that I may need to go with the other method (copying
> the table and dumping/restoring the copy), because the restore runs into
> name conflicts with several indexes and there is a trigger procedure
> on that table.

Also you could try (assuming you have perl, which you should):

perl -pi -e 's/ memmast / wk_memmast /' memmast.dmp

to replace all occurances in the file w/o making a copy.

And:

perl -pi -e 's/CREATE UNIQUE INDEX /CREATE UNIQUE INDEX wk_/' memmast.dmp
perl -pi -e 's/CREATE INDEX /CREATE INDEX wk_/' memmast.dmp

It looks like you've got the idea anyway.  There are ways to get even fancier
with the perl tool,  but for now keep it simple and have fun with it.

Best,

Jim Wilson


pgsql-general by date:

Previous
From: Bill Moran
Date:
Subject: Re: efficient storing of urls
Next
From: Ryan Riehle
Date:
Subject: XML Challenge