gpt4 book ai didi

android - 升级数据库 Sugar ORM 总是删除以前表的数据

转载 作者:行者123 更新时间:2023-11-29 14:36:52 24 4
gpt4 key购买 nike

我有一个带有 Sugar ORM 的数据库,每次我创建一个扩展 SugarRecord 的新类时,我都需要升级 android list 上的 database_version 以便 Sugar ORM 识别新表。好的,到此为止。

问题是 Sugar ORM 正在删除我数据库中每个表上的所有以前的数据!我有很多关于它们的数据,我无法在每次数据库升级时将其删除并重新插入。

有什么方法可以避免这种情况?

谢谢

最佳答案

  1. 在您的 Assets 文件夹中创建一个名为 sugar_upgrades 的文件夹。

  2. 创建一个名为 <version>.sql 的文件在该文件夹中,它对应于您在 Android Manifest 中升级到的数据库版本。例如。 1.sql、2.sql 此文件将包含该特定版本的所有更新/更改查询。

  3. 将 AndroidManifest.xml 中的 VERSION 元数据字段更改为适当的版本。

  4. Sugar 负责将数据库从当前版本升级到升级版本。例如:如果数据库当前为版本 1,升级后的版本为 4,它将查找 2.sql、3.sql 和 4.sql 并按顺序执行所有现有文件。

  5. 请注意,Sugar 会自动为新实体创建表,因此您的迁移脚本只需要满足对现有表的更改。

  6. 升级脚本示例。这是一个普通的sql脚本文件。您可以添加所有更改和插入/更新查询,一次一行。每行以 ; 结尾(分号)。

你的 assets/sugar_upgrades 文件夹中的文件:2.sql

alter table NOTE add NAME TEXT;

关于android - 升级数据库 Sugar ORM 总是删除以前表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670456/

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