Android 升级数据库时总是删除上一个表';s数据

Android 升级数据库时总是删除上一个表';s数据,android,orm,sugarorm,Android,Orm,Sugarorm,我有一个带有Sugar ORM的数据库,每次我创建一个扩展SugarRecord的新类时,我都需要将android manifest上的database_版本升级到Sugar ORM来识别新表。好的,到那时再说 问题是Sugar ORM正在删除我数据库中每个表上以前的所有数据!我有很多关于它们的数据,我不能在每次数据库升级时删除并重新插入它们 有没有办法避免这种情况 谢谢 在资产文件夹中创建一个名为sugar_upgrades的文件夹 在该文件夹中创建一个名为.sql的文件,该文件对应于您在An

我有一个带有Sugar ORM的数据库,每次我创建一个扩展SugarRecord的新类时,我都需要将android manifest上的database_版本升级到Sugar ORM来识别新表。好的,到那时再说

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

有没有办法避免这种情况

谢谢

  • 在资产文件夹中创建一个名为sugar_upgrades的文件夹

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

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

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

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

  • 升级脚本示例。 这是一个普通的sql脚本文件。您可以添加所有alter和insert/update查询,一次添加一行。每一条线都以一条线终止;(分号)

  • 资产/sugar\u升级文件夹中的文件:2.sql

    更改表格注释添加名称文本


    您可以使用sugar orm 1.5版本,如

    compile 'com.github.satyan:sugar:1.5'
    

    然后只需更新清单中的数据库版本,并确保您的数据不会被删除

    在您的情况下,如果您只需创建升级文件夹并创建1.sql文件并将其保留为空,我想这将实现我想的技巧。已经尝试过这一点。不起作用,还是删除所有内容。如果我需要创建一个新的实体,不管我做什么:我所有的数据都会被删除。这对我来说很好。你甚至可以阅读你的糖日志。我正在使用'com.github.satyan:sugar:1.3'谢谢你的回复,但我放弃了这个框架。过时的文档,糟糕的性能,有时还有奇怪的bug。。。现在和绿刀一起使用。