android - OrmLite - 在表升级之前保存数据

标签 android ormlite

可以在我的模型更改数据库之前保存表中的数据吗?

例如我重命名一个列并且不会丢失数据。所以我想从 c1 列中获取所有数据,将我的列重命名为 c2 并将所有数据写回。

最佳答案

这是来自 ORMLite documentation 的引述:“您不能重命名或删除列或更改约束”。

所以你的选择是:

  1. 保持原样,
  2. 添加一个新列,将所有数据从旧列复制到新列作为升级的一部分,完全忽略旧列,或者
  3. 使用删除/创建策略进行升级:将表中的数据备份到临时表中,删除表,按照您希望的方式重新创建它,将所有数据复制回其中,最后删除临时表。

数据库升级总是令人紧张的事情(需要大量的错误处理,大量的测试),坦率地说,如果名称是唯一您关心的事情,我会不理会它(选项 1) .如果您真的需要更改它,那么选项 2 风险较低,但会留下一个“死”列和数据。选项 3 可能是您的选择,例如,如果数据占整个数据库大小的很大一部分。

关于android - OrmLite - 在表升级之前保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17046451/

相关文章:

android - 从 Android JNI 程序调用的 Log API 是什么?

没有root的服务的Android屏幕截图

java - 使用 ormlite 库以编程方式删除 sqlite 数据库的数据

android - 当我添加一个新字段时,我得到一个空指针

java - 使用正则表达式和 android 对不同的字段进行分类

android - 在 Android Native 环境中从我自己的 APK 中读取资源文件

java - Android ORMLite DatabaseConfigUtil

android - "already added"ormlite 和 gradle 异常

android - 如何将预制数据库导入由 ormlite 管理的 sqlite

android - 如何查找具有特定标签(属性)的 View 列表