升级数据库Sugar ORM始终删除上一个表的数据

Kaz*_*Kaz 1 orm android sugarorm

我有一个使用Sugar ORM的数据库,每次我创建一个扩展SugarRecord的新类时,我需要将我在android清单上的database_version升级为Sugar ORM识别新表.好的,直到那时.

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

有一些方法可以避免这种情况吗?

谢谢

Arp*_*ogi 6

  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脚本文件.您可以一次添加一行所有的alter和insert/update查询.每条线由a终止; (分号).

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

alter table注意添加NAME TEXT;