【发布时间】:2023-02-24 03:09:11
【问题描述】:
我有一个 android 应用程序,我使用 Room 来管理数据库操作。 我想更新我的数据库并添加一个包含新数据的新列,所以我首先使用 python 在应用程序外部创建了我的数据库,然后用数据填充了数据库。
之后,我只需将新的数据库复制并粘贴到我的应用程序中,然后覆盖旧的数据库文件。 当我运行应用程序时,出现错误:
A migration from 3 to 4 was required but not found. Please provide the necessary Migration path via RoomDatabase.Builder.addMigration(Migration ...)
所以我创建了一个这样的迁移:
public class Migration_3_4 extends Migration {
public Migration_3_4() {
super(3, 4);
}
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE movies ADD COLUMN lang TEXT");
}
}
并更新了数据库创建:
Room.databaseBuilder(context, AppDatabase.class, "movies.db")
.addMigrations(new Migration_3_4())
.build();
在那之后,我没有得到任何错误,但我在新列中得到了 'null' 值。
然后我再次复制粘贴新的数据库,但我仍然在新列中看到 null 值。
我怎样才能将更新的数据库传输到我的应用程序?
谢谢
【问题讨论】:
标签: android database android-room