首页 > 解决方案 > 在android中迁移房间数据库

问题描述

我刚刚在 android 中更新了我的数据库,无法迁移应用程序。

我所做的更改是autoGenerate = true在我的@PrimaryKey

@PrimaryKey(autoGenerate = true)
private int id;

我尝试了很多东西,但我无法让迁移工作。

问题出现在我插入以下代码的 AppDatabase 类中:

public static final Migration MIGRATION_1_2 = new Migration(1, 2) {
    @Override
    public void migrate(SupportSQLiteDatabase database) {
        database.execSQL("ALTER TABLE inventory");
    }
};

ALTER TABLE库存不是正确的命令,但我不知道是什么

标签: javaandroid

解决方案


SQL 语句不正确ALTER TABLE inventory。您没有指定要在表格上更改的内容。

例如:ALTER TABLE inventory ADD name TEXT这意味着要在 table 中添加nametype中的新列。TEXTinventory

虽然您的情况是约束更改,但无法更改约束。但是您可以删除约束并再次添加它。

请在此处阅读答案: 如何更改约束


推荐阅读