Deshabilitando Foreign Keys (Claves Foraneas) en Postgresql 9

Hola a todos, en esta oportunidad escribo para comentar una situacion un poco rara al menos para mi, en muchas ocasiones habia tratado de deshabilitar las restricciones de claves foraneas para acelerar la migración, busqué por la web y me daba con la respuesta que eso se puede hacer si al momento de crear la clave foranea se especifica el parametro DEFERRABLE, como lo dice en la documentacion: POSTGRESQL CREATE TABLE. Si las claves fueron creadas especificando ese parametro se puede levantar la restriccion con la sentencia:

set constraints all deferred;

Esto solo funciona dentro de transacciones.

Una manera que he encontrado, no se si sea la mas correcta, es deshabilitando todos los triggers de las tablas que se desean levantar las restricciones de claves foraneas, esto es posible según mi juicio porque las restricciones de claves foráneas son tratadas como triggers internos, en mi caso he creado un script que deshabilita todos los triggers de la bd de datos. Veamos el codigo:

Sigue leyendo “Deshabilitando Foreign Keys (Claves Foraneas) en Postgresql 9”