From c0ff2a6be36e5c3ef537c0cad4f87fcfa45565fe Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Wed, 13 Jun 2018 13:51:58 +0200
Subject: [PATCH] Attempt at fixing migration crashes

---
 .../java/de/kuschku/quasseldroid/Quasseldroid.kt    |  5 +++++
 .../quasseldroid/persistence/QuasselDatabase.kt     | 13 ++++---------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/Quasseldroid.kt b/app/src/main/java/de/kuschku/quasseldroid/Quasseldroid.kt
index baa4c0bd3..64c357aca 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/Quasseldroid.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/Quasseldroid.kt
@@ -29,6 +29,7 @@ import de.kuschku.malheur.CrashHandler
 import de.kuschku.quasseldroid.dagger.DaggerAppComponent
 import de.kuschku.quasseldroid.persistence.AccountDatabase
 import de.kuschku.quasseldroid.persistence.LegacyAccountDatabase
+import de.kuschku.quasseldroid.persistence.QuasselDatabase
 import de.kuschku.quasseldroid.settings.AppearanceSettings
 import de.kuschku.quasseldroid.settings.SettingsMigration
 import de.kuschku.quasseldroid.settings.SettingsMigrationManager
@@ -156,6 +157,10 @@ class Quasseldroid : DaggerApplication() {
       )
     ).migrate(this)
 
+    // Initialize databases to run migrations
+    QuasselDatabase.Creator.init(this)
+    AccountDatabase.Creator.init(this)
+
     // Initialize preferences unless already set
 
     /*
diff --git a/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
index cc98904f8..bfdf400e4 100644
--- a/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
+++ b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
@@ -125,14 +125,10 @@ abstract class QuasselDatabase : RoomDatabase() {
     @Query("UPDATE filtered SET filtered = :filtered WHERE accountId = :accountId AND bufferId = :bufferId")
     fun setFiltered(accountId: Long, bufferId: Int, filtered: Int)
 
-    @Query(
-      "SELECT filtered FROM filtered WHERE bufferId = :bufferId AND accountId = :accountId UNION SELECT :default as filtered ORDER BY filtered DESC LIMIT 1"
-    )
+    @Query("SELECT filtered FROM filtered WHERE bufferId = :bufferId AND accountId = :accountId UNION SELECT :default as filtered ORDER BY filtered DESC LIMIT 1")
     fun get(accountId: Long, bufferId: Int, default: Int): Int
 
-    @Query(
-      "SELECT filtered FROM filtered WHERE bufferId = :bufferId AND accountId = :accountId UNION SELECT :default as filtered ORDER BY filtered DESC LIMIT 1"
-    )
+    @Query("SELECT filtered FROM filtered WHERE bufferId = :bufferId AND accountId = :accountId UNION SELECT :default as filtered ORDER BY filtered DESC LIMIT 1")
     fun listen(accountId: Long, bufferId: Int, default: Int): LiveData<Int>
 
     @Query("SELECT * FROM filtered WHERE accountId = :accountId")
@@ -327,9 +323,8 @@ abstract class QuasselDatabase : RoomDatabase() {
               },
               object : Migration(14, 15) {
                 override fun migrate(database: SupportSQLiteDatabase) {
-                  database.execSQL(
-                    "ALTER TABLE message ADD networkId INT DEFAULT 0 NOT NULL;"
-                  )
+                  database.execSQL("DELETE FROM message;")
+                  database.execSQL("ALTER TABLE message ADD networkId INT DEFAULT 0 NOT NULL;")
                 }
               }
             ).build()
-- 
GitLab