Em 4 de maio de 2011 07:50, Eloi Ribeiro <[email protected]> escreveu:

>
> # dump
> /usr/bin/pg_dump --host localhost --port 5432 --username utilizador
> --format plain --column-inserts --no-owner --verbose --file
> "/home/user/ficheiro.sql" --schema 'sch_origem' bd_nome
>
> # mudar o nome do esquema de origem pelo de destino
> sed 's/sch_origem/sch_destino/g' ficheiro.sql>ficheiro2.sql
>
> # subir as tabelas ao novo esquema
> psql -h localhost -U utilizador -d bd_nome -f ficheiro2.sql
>
>
Se vc realmente deseja *mover* as tabelas vc poderia simplificar da seguinte
forma:

psql -h localhost -U utilizador bd_nome -A -t -c "select 'ALTER TABLE
'||quote_ident(table_schema)||'.'||quote_ident(table_name)||' SET SCHEMA
'||quote_ident('sch_origem')||';' from information_schema.tables where
table_schema = 'sch_destino' " | psql -h localhost -U utilizador bd_nome

Assim elimina a necessidade de dump/restore.


Obs: Da forma como vc apresentou vc está "copiando" o conteúdo de um schema
para outro... se nao apagar o "sch_origem" da base vc terá ao final os dois.

-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a