如何解决 Room Db 迁移中的重复列名错误

Isu*_*ara 5 android android-room

我添加了以下代码,用于在迁移时向表中添加列SithluBody。

static final Migration MIGRATION_3_4 = new Migration(3, 4) {
    @Override
    public void migrate(SupportSQLiteDatabase database) {
        database.execSQL("ALTER TABLE SithaluBody ADD COLUMN has_thumb INTEGER NOT NULL 
        DEFAULT 0");
        database.execSQL("ALTER TABLE SithaluBody ADD COLUMN reacts TEXT");
    }
};
Run Code Online (Sandbox Code Playgroud)

但我收到错误==>

致命异常:android.database.sqlite.SQLiteException 重复列名:has_thumb(代码 1 SQLITE_ERROR)。我该如何修复它?请帮我。

Dan*_*eza 0

这可能是以下两个问题之一:

  1. 您已has_thumb添加该列。

  2. 您在设备/模拟器中安装了具有该列名称的旧版本,现在您尝试进行此迁移,但出现了冲突。

如果是第二种选择,请尝试卸载或清除设备/模拟器中您的应用程序的数据,然后尝试再次安装该应用程序。