Mandando um dump com um sed....

pg_dump ..... | sed 's/esquema_antigo/esquema_novo/g ' | psql -U ..


João Cosme de Oliveira Júnior


"Lembre-se que da conduta de cada um depende o destino de todos."



Em 04/05/2011 às 11:22 horas, pgbr-geral@listas.postgresql.org.br escreveu:
Opa,

Sem muito tempo para elaborar uma solução mais interessante, mas segue a minha:

DO $$

DECLARE

    tabela VARCHAR;

BEGIN
   
    FOR tabela IN    SELECT table_schema||'.'||table_name FROM information_schema.tables WHERE table_schema='esquema1' LOOP

        EXECUTE 'ALTER TABLE ' || tabela || ' SET SCHEMA esquema2';

    END LOOP;

END $$;


Em 4 de maio de 2011 09:07, Eloi Ribeiro <eloi.ribe...@gmail.com> escreveu:

2011/5/4 Fabrízio de Royes Mello <fabriziome...@gmail.com>

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.

Uahu! Excelente dica Fabrízio. Tomo nota.
Tens razao, fiquei com as dados duplicados, pelo menos até estar seguro que estaria tudo bem no novo esquema.
Obrigado.

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



Abraços
--
JotaComm
http://jotacomm.wordpress.com


-


"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."

"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure."
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to