表迁移因存储更新而崩溃,但在本地运行

时间:2016-03-08 13:35:01

标签: android sqlite database-migration activeandroid

我使用 Activeandroid 3.1.0 将一些数据存储在数据库中。几天前我需要更新一个表来添加另一列。

工作流: 将数据库版本从1增加到2:

<meta-data
    android:name="AA_DB_NAME"
    android:value="sqlite.db"/>
<meta-data
    android:name="AA_DB_VERSION"
    android:value="2"/>

在模型中添加新列:

  @Column(name = "test_column") private boolean test_column;

编写迁移脚本:

ALTER TABLE #TABLENAME# ADD COLUMN test_column INTEGER;

我在库中搜索过,发现java的布尔变量并转换为整数。

此脚本位于:

app/src/main/assets/migrations/2.sql

测试用例:保存一些元素 - &gt;使用上述步骤进行更新 - &gt;保存一些元素并使用列

问题:如果我通过直接将应用程序加载到我的手机上进行本地测试,那么当我上传应用程序并迁移到Playstore时,它会但是工作。我得到了典型的&#34;没有这样的专栏&#34; -Error。

有没有人知道迁移脚本是否未通过商店发送到最终的apk?我认为proguard可以删除文件,但它也适用于proguard和本地发布版本。此错误导致我在生产应用程序中出现大量崩溃,直到我将该列作为快速修复删除。

希望有人有个主意:)

0 个答案:

没有答案