I have a list definition create through XML. I need to add a new column. But when I deploy, it removes all data. Why is this?
Using XML is not the best way to create lists and update them and so on. Use a programmatic approach as it is the safest.
You can use a feature receiver and create the list there. Also make upgrades conditionally. I have heard of many people having issues when they use the XML approach.
You can try Deployment Conflict Resolution to None and try but in the long run, this will be more troubling.