Only do the migration if we have rows to migrate (#949)

This commit is contained in:
Daniel Shokouhi 2020-09-18 10:29:52 -07:00 committed by GitHub
parent e652696f1d
commit e874977320
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -139,6 +139,7 @@ abstract class AppDatabase : RoomDatabase() {
override fun migrate(database: SupportSQLiteDatabase) { override fun migrate(database: SupportSQLiteDatabase) {
val cursor = database.query("SELECT * FROM sensors") val cursor = database.query("SELECT * FROM sensors")
val sensors = mutableListOf<ContentValues>() val sensors = mutableListOf<ContentValues>()
if (cursor.count > 0) {
while (cursor.moveToNext()) { while (cursor.moveToNext()) {
sensors.add(ContentValues().also { sensors.add(ContentValues().also {
it.put("id", cursor.getString(cursor.getColumnIndex("unique_id"))) it.put("id", cursor.getString(cursor.getColumnIndex("unique_id")))
@ -152,6 +153,7 @@ abstract class AppDatabase : RoomDatabase() {
it.put("device_class", "") it.put("device_class", "")
}) })
} }
}
cursor.close() cursor.close()
database.execSQL("DROP TABLE IF EXISTS `sensors`") database.execSQL("DROP TABLE IF EXISTS `sensors`")
database.execSQL("CREATE TABLE IF NOT EXISTS `sensors` (`id` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `registered` INTEGER NOT NULL, `state` TEXT NOT NULL, `state_type` TEXT NOT NULL, `type` TEXT NOT NULL, `icon` TEXT NOT NULL, `name` TEXT NOT NULL, `device_class` TEXT, `unit_of_measurement` TEXT, PRIMARY KEY(`id`))") database.execSQL("CREATE TABLE IF NOT EXISTS `sensors` (`id` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `registered` INTEGER NOT NULL, `state` TEXT NOT NULL, `state_type` TEXT NOT NULL, `type` TEXT NOT NULL, `icon` TEXT NOT NULL, `name` TEXT NOT NULL, `device_class` TEXT, `unit_of_measurement` TEXT, PRIMARY KEY(`id`))")
@ -176,6 +178,7 @@ abstract class AppDatabase : RoomDatabase() {
override fun migrate(database: SupportSQLiteDatabase) { override fun migrate(database: SupportSQLiteDatabase) {
val cursor = database.query("SELECT * FROM sensors") val cursor = database.query("SELECT * FROM sensors")
val sensors = mutableListOf<ContentValues>() val sensors = mutableListOf<ContentValues>()
if (cursor.count > 0) {
while (cursor.moveToNext()) { while (cursor.moveToNext()) {
sensors.add(ContentValues().also { sensors.add(ContentValues().also {
it.put("id", cursor.getString(cursor.getColumnIndex("id"))) it.put("id", cursor.getString(cursor.getColumnIndex("id")))
@ -189,6 +192,7 @@ abstract class AppDatabase : RoomDatabase() {
it.put("name", "") it.put("name", "")
}) })
} }
}
cursor.close() cursor.close()
database.execSQL("DROP TABLE IF EXISTS `sensors`") database.execSQL("DROP TABLE IF EXISTS `sensors`")
database.execSQL("CREATE TABLE IF NOT EXISTS `sensors` (`id` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `registered` INTEGER NOT NULL, `state` TEXT NOT NULL, `last_sent_state` TEXT NOT NULL, `state_type` TEXT NOT NULL, `type` TEXT NOT NULL, `icon` TEXT NOT NULL, `name` TEXT NOT NULL, `device_class` TEXT, `unit_of_measurement` TEXT, PRIMARY KEY(`id`))") database.execSQL("CREATE TABLE IF NOT EXISTS `sensors` (`id` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `registered` INTEGER NOT NULL, `state` TEXT NOT NULL, `last_sent_state` TEXT NOT NULL, `state_type` TEXT NOT NULL, `type` TEXT NOT NULL, `icon` TEXT NOT NULL, `name` TEXT NOT NULL, `device_class` TEXT, `unit_of_measurement` TEXT, PRIMARY KEY(`id`))")