How upgrading of the software can disrupt your data? It should not. You need to keep your software backward-compatible.
You can do perform some
schema evolution
, but you need to keep the schema backward-compatible by making only incremental steps in evolution. That's it, you should not remove anything from schema, only add.
If you want to migrate from some entities you want to get rid of to some new entities, do not remove old ones anyway. Instead, in the code, create some mechanism of
deprecation
. When your user starts some new work (hard to say what it can be based on your information, maybe you don't have suck thing), the code should use new entities, but if the user queries for something created before the schema evolution, old entities should keep working.
This is all I can say based on your rather minimalistic information.
See
http://en.wikipedia.org/wiki/Schema_evolution[
^].
—SA