Android 开发项目使用到了Room数据库。在业务不断完善的时候数据库都会发生变化。今天在给表增加列的时候遇到了一个问题。
Migration didn't properly handle xxx
我升级表的目的是为了给表增加一个布尔值
以下是出错的代码:
从版本1迁移到版本2
在test_records表里面增加一列 is_tourists_data
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE test_records ADD COLUMN is_tourists_data")
}
}
运行后Android stuido 提示notNull不一致
最后修改代码
database.execSQL("ALTER TABLE test_records ADD COLUMN is_tourists_data INTEGER NOT NULL DEFAULT 0")
设置个默认值0(false)即可 NOT NULL DEFAULT 0