【发布时间】:2020-05-20 05:07:17
【问题描述】:
我想在数据库中创建新表。迁移应用程序删除数据库中的所有项目后。为什么?我没用过fallbackToDestructiveMigration()
我的代码:
public class DatabaseClient {
private static DatabaseClient mInstance;
private DatabaseApp databaseApp;
private DatabaseClient(Context context) {
appDatabase = Room.databaseBuilder(context, DatabaseApp.class, "DB_NAME").build();
appDatabase = Room.databaseBuilder(context, DatabaseApp.class, "DB_NAME").addMigrations(MIGRATION_1_2).build();
}
public static synchronized DatabaseClient getInstance(Context mCtx) {
if (mInstance == null)
mInstance = new DatabaseClient(mCtx);
return mInstance;
}
public AppDatabase getAppDatabase() {
return appDatabase;
}
static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(@NonNull final SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE `MarkRead` (`Id` INTEGER, `StudentId` TEXT," +
"`StudentName` TEXT, `MarkId` INTEGER,`Mark` TEXT, PRIMARY KEY(`Id`))");
}
};
}
我做错了什么?
【问题讨论】:
标签: java android migration android-room database-migration