我正在研究使用 ORM(反对关系映射器)来允许我将 C++ 对象持久保存到 SQLite 数据库中。我目前正在考虑 CodeSynthesis 的 ODB。
见: http: //www.codesynthesis.com/products/odb/
查看 ODB 的文档,我没有看到我的一个烦人的问题的答案,即:
如果我创建一个类,将其保存到数据库,但随后在我的产品的更高版本中更改该类,会发生什么情况。当用户获得我的软件的新版本时,如何将旧数据正确加载到新版本的类中?
我之前看过 boost::serialize ,它有处理这种“升级”的机制,但我想知道:
- 一般来说,这在 ORM 工具中是如何处理的?
- 如何专门用 ODB 做到这一点
- 有没有比 ODB 更好的 ORM 工具来处理这个问题?