gpt4 book ai didi

android - 糖 ORM 迁移 : Create new table drops/re-creates existing tables

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:00 29 4
gpt4 key购买 nike

我在应用程序的第一个版本中使用了 SugarORM。现在,我正在开发第二个版本,它向数据库中添加了新表。

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

这是我做的:

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

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

我还尝试通过添加迁移脚本文件自己创建新表 2.sql其中包含我的 CREATE TABLE NEW_MODEL陈述。同样不幸的是,它抛出了一个异常“表已经存在”,因为 Sugar 创建了新表然后尝试运行我的脚本!

有什么建议吗?

最佳答案

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

所以,总结一下:

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

关于android - 糖 ORM 迁移 : Create new table drops/re-creates existing tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32075760/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com