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

Abd*_*man 5 android sugarorm

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

根据SugarORM 文档 "Sugar将自动为新实体创建表,因此您的迁移脚本只需要满足对现有表的更改."

这是我做的:

  1. 增加了AndroidManifest中的DB版本 <meta-data android:name="VERSION" android:value="2" />
  2. 创建了新的记录类. public class NewModel extends SugarRecord<NewModel>

在运行应用程序时,Sugar创建了新表,但不幸的是,它还删除/创建了现有表,删除了本地保存的所有数据!

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

有什么建议?

Abd*_*man 11

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

所以,得出结论:

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