Ok, it took a while, but I finally came up with this MySQL script to fix the IR of the whole database.
It's running now, and hopefully it should fix my problems. I'm posting it here so that if anybody else need it.. Obviously I make no guarantees of any kind. ALTER TABLE dbmail_mailboxes DROP FOREIGN KEY dbmail_mailboxes_ibfk_1; ALTER TABLE dbmail_mailboxes ADD FOREIGN KEY owner_idnr_fk (owner_idnr) REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_subscription DROP FOREIGN KEY dbmail_subscription_ibfk_1; ALTER TABLE dbmail_subscription DROP FOREIGN KEY dbmail_subscription_ibfk_2; ALTER TABLE dbmail_subscription DROP FOREIGN KEY dbmail_subscription_ibfk_3; ALTER TABLE dbmail_subscription DROP FOREIGN KEY dbmail_subscription_ibfk_4; ALTER TABLE `dbmail_subscription` ADD FOREIGN KEY (`mailbox_id`) REFERENCES `dbmail_mailboxes` (`mailbox_idnr`) ON DELETE CASCADE ON UPDATE CASCADE, ADD FOREIGN KEY (`user_id`) REFERENCES `dbmail_users` (`user_idnr`) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_acl DROP FOREIGN KEY dbmail_acl_ibfk_1; ALTER TABLE dbmail_acl DROP FOREIGN KEY dbmail_acl_ibfk_2; ALTER TABLE dbmail_acl ADD FOREIGN KEY user_id_fk (user_id) REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE, ADD FOREIGN KEY mailbox_id_fk (mailbox_id) REFERENCES dbmail_mailboxes (mailbox_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_messages DROP FOREIGN KEY dbmail_messages_ibfk_1; ALTER TABLE dbmail_messages DROP FOREIGN KEY dbmail_messages_ibfk_2; ALTER TABLE dbmail_messages ADD FOREIGN KEY physmessage_id_fk (physmessage_id) REFERENCES dbmail_physmessage (id) ON DELETE CASCADE ON UPDATE CASCADE, ADD FOREIGN KEY mailbox_idnr_fk (mailbox_idnr) REFERENCES dbmail_mailboxes (mailbox_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_messageblks DROP FOREIGN KEY dbmail_messageblks_ibfk_1; ALTER TABLE dbmail_messageblks ADD FOREIGN KEY physmessage_id_fk (physmessage_id) REFERENCES dbmail_physmessage (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_auto_notifications DROP FOREIGN KEY dbmail_auto_notifications_ibfk_1; ALTER TABLE dbmail_auto_notifications ADD FOREIGN KEY user_idnr_fk (user_idnr) REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_auto_replies DROP FOREIGN KEY dbmail_auto_replies_ibfk_1; ALTER TABLE dbmail_auto_replies ADD FOREIGN KEY user_idnr_fk (user_idnr) REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_sievescripts DROP FOREIGN KEY dbmail_sievescripts_ibfk_1; ALTER TABLE dbmail_sievescripts ADD FOREIGN KEY owner_idnr_fk (owner_idnr) REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE dbmail_headervalue DROP FOREIGN KEY dbmail_headervalue_ibfk_1; ALTER TABLE dbmail_headervalue DROP FOREIGN KEY dbmail_headervalue_ibfk_2; ALTER TABLE dbmail_headervalue ADD FOREIGN KEY (headername_id) REFERENCES dbmail_headername(id) ON UPDATE CASCADE ON DELETE CASCADE, ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_subjectfield DROP FOREIGN KEY dbmail_subjectfield_ibfk_1; ALTER TABLE dbmail_subjectfield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_datefield DROP FOREIGN KEY dbmail_datefield_ibfk_1; ALTER TABLE dbmail_datefield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_referencesfield DROP FOREIGN KEY dbmail_referencesfield_ibfk_1; ALTER TABLE dbmail_referencesfield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_fromfield DROP FOREIGN KEY dbmail_fromfield_ibfk_1; ALTER TABLE dbmail_fromfield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_tofield DROP FOREIGN KEY dbmail_tofield_ibfk_1; ALTER TABLE dbmail_tofield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_replytofield DROP FOREIGN KEY dbmail_replytofield_ibfk_1; ALTER TABLE dbmail_replytofield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_ccfield DROP FOREIGN KEY dbmail_ccfield_ibfk_1; ALTER TABLE dbmail_ccfield ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE dbmail_envelope DROP FOREIGN KEY dbmail_envelope_ibfk_1; ALTER TABLE dbmail_envelope ADD FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE; You may want add SET FOREIGN_KEY_CHECKS = 0; and SET FOREIGN_KEY_CHECKS = 1; at the and and at the bottom.... Naviga e telefona senza limiti con Tiscali Scopri le promozioni Tiscali adsl: navighi e telefoni senza canone Telecom http://abbonati.tiscali.it/adsl/ _______________________________________________ DBmail mailing list [email protected] https://mailman.fastxs.nl/mailman/listinfo/dbmail
