Tôi không chắc chính xác tại sao nó lại xảy ra, nhưng dường như tôi đã tìm ra giải pháp. Tôi đang sử dụng South để quản lý DB; nó đã tạo Messages dưới dạng InnoDB và AffiliateLead là MyISAM. Thay đổi bảng AffiliateLead thành InnoDB đã kết thúc IntegrityErrors. Hy vọng điều này sẽ giúp ích cho người khác.