martes, 14 de octubre de 2008

viola la llave foránea "dbmail_mail boxes_owner_idnr_fkey"

Tengo un dbmail corriendo en PostgreSQL y encontré este error en el log de PostgreSQL /var/log/postgresql/postgresql-8.1-main.log

DETALLE: La llave (owner_idnr)=(0) no está presente en la tabla «dbmail_users».
2008-10-14 13:25:12 CEST ERROR: inserción o actualización en la tabla «dbmail_mailboxes» viola la llave foránea «dbmail_mail
boxes_owner_idnr_fkey»


Pensé que podría haber algún error entre las relaciones de usuarios y alias y busqué algún error entre estas tablas. Ejecutando este SELECT no deberíamos obtener ningún resultado.

SELECT * FROM dbmail_aliases WHERE deliver_to NOT IN (SELECT user_idnr FROM dbmail_users);


Ya que todos los registros de aliases deberían tener su correspondiente en la tabla de usuarios, para localizar su mailbox correspondiente. El problema que tenía era que esa sentencia sí que me devolvía registros y esos registros no tenían usuarios asociados y por tanto tampoco mailbox asociados.

Así que no encontraba el buzón donde tenía que mandar los correos y ese es el error que ves en el log de PostgreSQL viola la llave foránea «dbmail_mail
boxes_owner_idnr_fkey»
.

Creo que el problema viene del administrador que he creado para crear y editar cuentas de correos desde web. Tendré que repararlo.