Estoy creando muchas migraciones que tienen claves externas en PostgreSQL 9.4.
Esto crea un dolor de cabeza porque las tablas deben estar todas en el orden exacto esperado por las claves externas cuando se migran. Se vuelve aún más complicado si tengo que ejecutar migraciones desde otros paquetes de los que dependen mis nuevas migraciones para obtener una clave externa.
En MySQL, puedo simplificar esto simplemente agregando SET FOREIGN_KEY_CHECKS = 0;
a la parte superior de mi archivo de migración. ¿Cómo puedo hacer esto temporalmente en PostgresSQL solo por la longitud del código de migración?
Por cierto, usando el generador de esquemas de Laravel para esto.
fuente
super user
rol para que los clientes no puedan estropear la configuración de replicación. Parece que tengo que ser un superusuario para desactivar algunos activadores del sistema. (Actualmente estoy usando mi cuenta de administrador que también es la propietaria; no estoy seguro de por qué funcionó una vez). Establecer la opción de replicación tampoco es una opción viable, ya que también requiere elsuper user
rol. Mi única opción parece ser soltar y recrear las claves externas ...DISABLE TRIGGER ALL
algo, pero no tiene ningún efecto. Ni siquiera recibo ninguna advertencia. Simplemente se ignora.Para la migración, es más fácil deshabilitar todos los activadores con:
SET session_replication_role = 'replica';
Y después de la migración, vuelva a habilitarlo todo con
SET session_replication_role = 'origin';
fuente
10.4
y esta declaración anterior no parece funcionar.