forked from github/szkolny
[Database] Fix migrations from 3.2.1 to 4.0-beta.
This commit is contained in:
parent
60a3c38951
commit
78c5b6b2a5
@ -42,7 +42,7 @@ import pl.szczodrzynski.edziennik.data.db.migration.*
|
||||
ConfigEntry::class,
|
||||
LibrusLesson::class,
|
||||
Metadata::class
|
||||
], version = 76)
|
||||
], version = 77)
|
||||
@TypeConverters(
|
||||
ConverterTime::class,
|
||||
ConverterDate::class,
|
||||
@ -159,7 +159,8 @@ abstract class AppDb : RoomDatabase() {
|
||||
Migration73(),
|
||||
Migration74(),
|
||||
Migration75(),
|
||||
Migration76()
|
||||
Migration76(),
|
||||
Migration77()
|
||||
).allowMainThreadQueries().build()
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ class Migration56 : Migration(55, 56) {
|
||||
profileId INTEGER NOT NULL,
|
||||
lessonRangeNumber INTEGER NOT NULL,
|
||||
lessonRangeStart TEXT NOT NULL,
|
||||
LessonRangeEnd TEXT NOT NULL,
|
||||
lessonRangeEnd TEXT NOT NULL,
|
||||
PRIMARY KEY(profileId, lessonRangeNumber))""")
|
||||
}
|
||||
}
|
||||
|
@ -10,26 +10,25 @@ import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
class Migration76 : Migration(75, 76) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
database.execSQL("ALTER TABLE feedbackMessages RENAME TO _feedbackMessages;")
|
||||
database.execSQL("CREATE TABLE feedbackMessages (\n" +
|
||||
"\tmessageId INTEGER NOT NULL PRIMARY KEY,\n" +
|
||||
"\treceived INTEGER NOT NULL,\n" +
|
||||
"\ttext TEXT NOT NULL,\n" +
|
||||
"\tsenderName TEXT NOT NULL,\n" +
|
||||
"\tdeviceId TEXT DEFAULT NULL,\n" +
|
||||
"\tdeviceName TEXT DEFAULT NULL,\n" +
|
||||
"\tdevId INTEGER DEFAULT NULL,\n" +
|
||||
"\tdevImage TEXT DEFAULT NULL,\n" +
|
||||
"\tsentTime INTEGER NOT NULL\n" +
|
||||
");")
|
||||
database.execSQL("INSERT INTO feedbackMessages (messageId, received, text, senderName, deviceId, deviceName, devId, devImage, sentTime)\n" +
|
||||
"SELECT messageId, received, text,\n" +
|
||||
"CASE fromUser IS NOT NULL WHEN 1 THEN CASE fromUserName IS NULL WHEN 1 THEN \"\" ELSE fromUserName END ELSE \"\" END AS senderName,\n" +
|
||||
"fromUser AS deviceId,\n" +
|
||||
"NULL AS deviceName,\n" +
|
||||
"CASE received AND fromUser IS NULL WHEN 1 THEN 100 ELSE NULL END AS devId,\n" +
|
||||
"NULL AS devImage,\n" +
|
||||
"sentTime\n" +
|
||||
"FROM _feedbackMessages;")
|
||||
database.execSQL("""CREATE TABLE feedbackMessages (
|
||||
messageId INTEGER NOT NULL PRIMARY KEY,
|
||||
received INTEGER NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
senderName TEXT NOT NULL,
|
||||
deviceId TEXT DEFAULT NULL,
|
||||
deviceName TEXT DEFAULT NULL,
|
||||
devId INTEGER DEFAULT NULL,
|
||||
devImage TEXT DEFAULT NULL,
|
||||
sentTime INTEGER NOT NULL);""")
|
||||
database.execSQL("""INSERT INTO feedbackMessages (messageId, received, text, senderName, deviceId, deviceName, devId, devImage, sentTime)
|
||||
SELECT messageId, received, text,
|
||||
CASE fromUser IS NOT NULL WHEN 1 THEN CASE fromUserName IS NULL WHEN 1 THEN "" ELSE fromUserName END ELSE "" END AS senderName,
|
||||
fromUser AS deviceId,
|
||||
NULL AS deviceName,
|
||||
CASE received AND fromUser IS NULL WHEN 1 THEN 100 ELSE NULL END AS devId,
|
||||
NULL AS devImage,
|
||||
sentTime
|
||||
FROM _feedbackMessages;""")
|
||||
database.execSQL("DROP TABLE _feedbackMessages;")
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
package pl.szczodrzynski.edziennik.data.db.migration
|
||||
|
||||
import androidx.room.migration.Migration
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
|
||||
class Migration77 : Migration(76, 77) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
database.execSQL("DROP TABLE lessonRanges")
|
||||
database.execSQL("""CREATE TABLE IF NOT EXISTS lessonRanges (
|
||||
profileId INTEGER NOT NULL,
|
||||
lessonRangeNumber INTEGER NOT NULL,
|
||||
lessonRangeStart TEXT NOT NULL,
|
||||
lessonRangeEnd TEXT NOT NULL,
|
||||
PRIMARY KEY(profileId, lessonRangeNumber))""")
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user