Sugar ORM迁移:创建新的表删除/重新创建现有表

时间:2015-08-18 14:50:17

标签: android sugarorm

我在我的应用程序的第一个版本中使用了SugarORM。 现在,我正在开发第二个版本,它已将新表添加到DB。

根据SugarORM documentation“Sugar将自动为新实体创建表格,因此您的迁移脚本只需要满足对现有表格的更改。”

这就是我所做的:

  1. 增加了AndroidManifest <meta-data android:name="VERSION" android:value="2" />
  2. 中的数据库版本
  3. 创建了新的记录类。 public class NewModel extends SugarRecord<NewModel>
  4. 当运行应用程序时,Sugar创建了新表,但不幸的是,它还删除/创建了现有表,删除了本地保存的所有数据!

    我还尝试通过添加包含2.sql语句的迁移脚本文件CREATE TABLE NEW_MODEL来自己创建新表。不幸的是,它引发了一个异常“Table已经存在”,因为Sugar创建了新表,然后尝试运行我的脚本!

    有什么建议吗?

1 个答案:

答案 0 :(得分:11)

我找到了一个解决方案,我必须使用新的版本号创建一个空的迁移脚本文件!现在,它创建新表而不删除/创建旧表。

所以,总结一下:

  1. 增加AndroidManifest中的数据库版本号。
  2. 创建新的Sugar记录类。
  3. 添加一个以新数据库版本命名的空迁移脚本文件,位于assets / sugar_upgrades下。 (例如2.sql)。