我使用 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和本地发布版本。此错误导致我在生产应用程序中出现大量崩溃,直到我将该列作为快速修复删除。
希望有人有个主意:)