From c6e54e7e5a3e402553d2f57e2997fb80d029d559 Mon Sep 17 00:00:00 2001 From: Andreas Straub Date: Fri, 6 Nov 2015 14:50:55 +0100 Subject: [PATCH] Move migration 19 before 17 Migration 17 depends on Account deserialization, so any migrations that touch the accounts table need to be applied beforehand. Re-writing the migration to work directly on the database would lead to a lot of code duplication, so it's not worth it at this time, but might become necessary later on to avoid dependency cycles. --- .../siacs/conversations/persistance/DatabaseBackend.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java index fdbfe4fee..0e133d192 100644 --- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java @@ -304,6 +304,12 @@ public class DatabaseBackend extends SQLiteOpenHelper { db.execSQL("ALTER TABLE " + Message.TABLENAME + " ADD COLUMN " + Message.CARBON + " INTEGER"); } + if (oldVersion < 19 && newVersion >= 19) { + db.execSQL("ALTER TABLE " + Account.TABLENAME + " ADD COLUMN "+ Account.DISPLAY_NAME+ " TEXT"); + } + /* Any migrations that alter the Account table need to happen BEFORE this migration, as it + * depends on account de-serialization. + */ if (oldVersion < 17 && newVersion >= 17) { List accounts = getAccounts(db); for (Account account : accounts) { @@ -325,9 +331,6 @@ public class DatabaseBackend extends SQLiteOpenHelper { if (oldVersion < 18 && newVersion >= 18) { db.execSQL("ALTER TABLE " + Message.TABLENAME + " ADD COLUMN "+ Message.READ+ " NUMBER DEFAULT 1"); } - if (oldVersion < 19 && newVersion >= 19) { - db.execSQL("ALTER TABLE " + Account.TABLENAME + " ADD COLUMN "+ Account.DISPLAY_NAME+ " TEXT"); - } } public static synchronized DatabaseBackend getInstance(Context context) {