Thread: Moving database and schema to a new tablespace

Moving database and schema to a new tablespace

From
Richard Shaw
Date:
Hi,

I'm looking to move a database by using ALTER DATABASE $DB  SET TABLESPACE and i'd also like to move a schema over to
thesame new tablespace, googling around, it looks like there was a an ALTER SCHEMA $SCHEMA SET TABLESPACE command in
thepast, but apparently no longer.   I'm using Postgres 9, can anyone confirm if this is still possible, and if not,
howI can move the schema over ? 

Thanks in advance

Richard

Re: Moving database and schema to a new tablespace

From
Guillaume Lelarge
Date:
On Thu, 2011-09-08 at 19:09 +0100, Richard Shaw wrote:
> Hi,
>
> I'm looking to move a database by using ALTER DATABASE $DB  SET TABLESPACE and i'd also like to move a schema over to
thesame new tablespace, googling around, it looks like there was a an ALTER SCHEMA $SCHEMA SET TABLESPACE command in
thepast, but apparently no longer.   I'm using Postgres 9, can anyone confirm if this is still possible, and if not,
howI can move the schema over ? 
>

ALTER SCHEMA... SET TABLESPACE never existed in PostgreSQL.

As you're using PostgreSQL 9, you can use the DO command to do something
like this. You need to find every table in the schema, and launch ALTER
TABLE... SET TABLESPACE to them. And then do the same with indexes.


--
Guillaume
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com


Re: Moving database and schema to a new tablespace

From
"Marc Mamin"
Date:

>> I'm looking to move a database by using ALTER DATABASE $DB  SET TABLESPACE and i'd also like to move a schema over to the same new tablespace, googling around, it looks like there was a an ALTER SCHEMA $SCHEMA SET TABLESPACE command in the past, but apparently no longer.   I'm using Postgres 9, can anyone confirm if this is still possible, and if not, how I can move the schema over ?
>>

>ALTER SCHEMA... SET TABLESPACE never existed in PostgreSQL.

>As you're using PostgreSQL 9, you can use the DO command to do something
>like this. You need to find every table in the schema, and launch ALTER
>TABLE... SET TABLESPACE to them. And then do the same with indexes.

Hello,

Maybe you are looking after this ?

http://archives.postgresql.org/pgsql-performance/2006-08/msg00369.php

otherwise here is a howto foe moving tables and indexes one by one:

http://blog.lodeblomme.be/2008/03/15/move-a-postgresql-database-to-a-different-tablespace/

HTH,

Marc Mamin