Search Postgresql Archives

Re: transfering tables into other schema

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 Feb 2009 12:19:14 +0000
Sam Mason <sam@xxxxxxxxxxxxx> wrote:


> > > I'd like to move all the 200 tables to a new schema and leave
> > > that one in the public schema.
> > 
> > ALTER TABLE name SET SCHEMA new_schema;
> 
> Make sure your functions don't contain any hard coded references to
> the old schema name though!
> 
> As Raymond says, you can do this all in a transaction and roll
> back if any of the functions don't do the correct thing.  Be aware
> that you're probably going to lock other users out when doing this
> so it may be worth having a script (so it's locked for as small a
> time as possible and doesn't wait for human amounts of time) that
> renames the schema and runs a few of the functions with
> representative arguments and a rollback at the end.  Once you've
> run this a few times with different functions and arguments and
> generally convinced yourself that all is OK, change the rollback
> to commit and all will be done.

I can't get how this really work.
You're saying that constraint, fk/pk relationships will be preserved
automatically... what else?

OK BEFORE:

create table x (
 xid primary key,
  ...
);
create table y (
 xid int referencex x (xid),
  ...
);

-- following in application
select x.a, y.b from x join y on x.xid=y.xid;

-- following in the DB
create or replace function xy() as
$$
begin
	select x.a, y.b from x join y on x.xid=y.xid;
...
end;
$$ ...

ALTER TABLE y SET SCHEMA new_schema;

What should I change by hand?

thanks

-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux