From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | victor(dot)perez(at)e-evolution(dot)com, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Copiar bases de datos postgres 7.3 a postgres 8.1 |
Date: | 2005-11-10 22:31:13 |
Message-ID: | c2d9e70e0511101431w56d03d36m9d8711f7d7132a7f@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 11/10/05, Edwin Quijada <listas_quijada(at)hotmail(dot)com> wrote:
> Algo mas facil que siempre hago y funciona.
> Desahibilita en tu nueva base todos los triggers esto tambien desabilita
> las referencias entre tablas , metes toda tu data , yluego vuelves y la
> habilitas. Si te gusta esa forma puedo enviarte como se desabilitan todas
> las restricciones, uhmm, pero funcionara en 8.1 ??
> Alvaro , que me dices?
>
> Para desactivarlos pg_dump hace algo como:
>
> UPDATE pg_class SET reltriggers = 0 WHERE relname !~ 'pg_';
>
> y para activarlos de nuevo algo como:
>
> UPDATE pg_class SET reltriggers = (SELECT count(*) FROM pg_trigger where
> pg_class.oid = tgrelid) WHERE relname !~ '^pg_'
>
> Nota que esto desactiva *todos* los triggers, en particular aquellos
> que se encargan de mantener la integridad referencial.
>
> Bueno, pruebalo si te deja es decir que funciona.
> Recuerda volver activarlos despues de meter toda tu data.
>
mmm... triggers... puede ser la solucion...
por cierto acabo de recordar que en 8.1 existe la nueva sintaxis
ALTER TABLE [ONLY] tabla DISABLE TRIGGER [ trigger_name | ALL | USER ]
ALTER TABLE [ONLY] tabla ENABLE TRIGGER [ trigger_name | ALL | USER ]
aunque claro tu solucion desactiva en todas las tablas y esto lo hace
una por una
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel | 2005-11-10 22:33:21 | slony-I |
Previous Message | Edwin Quijada | 2005-11-10 21:45:32 | Re: Copiar bases de datos postgres 7.3 a postgres 8.1 |