Android: Handle a database downgrade.
This has no effect now, as we've never bumped the database version. Instead, it adds future proofing, and makes moving between a future version with a bump and master clean.
This commit is contained in:
parent
4dc425b9c9
commit
74ae2522fe
|
@ -78,6 +78,7 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
+ KEY_DB_ID + TYPE_PRIMARY + SEPARATOR
|
+ KEY_DB_ID + TYPE_PRIMARY + SEPARATOR
|
||||||
+ KEY_FOLDER_PATH + TYPE_STRING + CONSTRAINT_UNIQUE + ")";
|
+ KEY_FOLDER_PATH + TYPE_STRING + CONSTRAINT_UNIQUE + ")";
|
||||||
|
|
||||||
|
private static final String SQL_DELETE_FOLDERS = "DROP TABLE IF EXISTS " + TABLE_NAME_FOLDERS;
|
||||||
private static final String SQL_DELETE_GAMES = "DROP TABLE IF EXISTS " + TABLE_NAME_GAMES;
|
private static final String SQL_DELETE_GAMES = "DROP TABLE IF EXISTS " + TABLE_NAME_GAMES;
|
||||||
|
|
||||||
public GameDatabase(Context context)
|
public GameDatabase(Context context)
|
||||||
|
@ -91,11 +92,19 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
{
|
{
|
||||||
Log.debug("[GameDatabase] GameDatabase - Creating database...");
|
Log.debug("[GameDatabase] GameDatabase - Creating database...");
|
||||||
|
|
||||||
Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_GAMES);
|
execSqlAndLog(database, SQL_CREATE_GAMES);
|
||||||
database.execSQL(SQL_CREATE_GAMES);
|
execSqlAndLog(database, SQL_CREATE_FOLDERS);
|
||||||
|
}
|
||||||
|
|
||||||
Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_FOLDERS);
|
@Override
|
||||||
database.execSQL(SQL_CREATE_FOLDERS);
|
public void onDowngrade(SQLiteDatabase database, int oldVersion, int newVersion)
|
||||||
|
{
|
||||||
|
Log.verbose("[GameDatabase] Downgrades not supporting, clearing databases..");
|
||||||
|
execSqlAndLog(database, SQL_DELETE_FOLDERS);
|
||||||
|
execSqlAndLog(database, SQL_CREATE_FOLDERS);
|
||||||
|
|
||||||
|
execSqlAndLog(database, SQL_DELETE_GAMES);
|
||||||
|
execSqlAndLog(database, SQL_CREATE_GAMES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -103,11 +112,9 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
{
|
{
|
||||||
Log.info("[GameDatabase] Upgrading database from schema version " + oldVersion + " to " + newVersion);
|
Log.info("[GameDatabase] Upgrading database from schema version " + oldVersion + " to " + newVersion);
|
||||||
|
|
||||||
Log.verbose("[GameDatabase] Executing SQL: " + SQL_DELETE_GAMES);
|
// Delete all the games
|
||||||
database.execSQL(SQL_DELETE_GAMES);
|
execSqlAndLog(database, SQL_DELETE_GAMES);
|
||||||
|
execSqlAndLog(database, SQL_CREATE_GAMES);
|
||||||
Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_GAMES);
|
|
||||||
database.execSQL(SQL_CREATE_GAMES);
|
|
||||||
|
|
||||||
Log.verbose("[GameDatabase] Re-scanning library with new schema.");
|
Log.verbose("[GameDatabase] Re-scanning library with new schema.");
|
||||||
scanLibrary(database);
|
scanLibrary(database);
|
||||||
|
@ -283,4 +290,10 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void execSqlAndLog(SQLiteDatabase database, String sql)
|
||||||
|
{
|
||||||
|
Log.verbose("[GameDatabase] Executing SQL: " + sql);
|
||||||
|
database.execSQL(sql);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue