可以在我的模型更改数据库之前保存表中的数据吗?
例如我重命名一个列并且不会丢失数据。所以我想从 c1 列中获取所有数据,将我的列重命名为 c2 并将所有数据写回。
最佳答案
这是来自 ORMLite documentation 的引述:“您不能重命名或删除列或更改约束”。
所以你的选择是:
- 保持原样,
- 添加一个新列,将所有数据从旧列复制到新列作为升级的一部分,完全忽略旧列,或者
- 使用删除/创建策略进行升级:将表中的数据备份到临时表中,删除表,按照您希望的方式重新创建它,将所有数据复制回其中,最后删除临时表。
数据库升级总是令人紧张的事情(需要大量的错误处理,大量的测试),坦率地说,如果名称是唯一您关心的事情,我会不理会它(选项 1) .如果您真的需要更改它,那么选项 2 风险较低,但会留下一个“死”列和数据。选项 3 可能是您的选择,例如,如果数据占整个数据库大小的很大一部分。
关于android - OrmLite - 在表升级之前保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17046451/