In symfony, versioning a model was not terribly difficult. I had my own specialized brute-force way of doing this.