I only implemented the 'keepExisting' version from 2.x for saving the habtm, which requires having a primary key (does not need to be composite). I just changed the index instead of adding an 'id' column