Это первый раз, когда мне нужно изменить структуру базы данных моего приложения (которое уже было опубликовано в игре Google). Это мой класс базы данных:Как обновить базу данных на устройстве пользователя?
public class Database extends SQLiteOpenHelper {
private static final String DB_NAME = "db";
private static final int DB_VERSION = 1;
public Database(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String table = "CREATE TABLE users(";
table += "_id TEXT PRIMARY KEY,";
table += "name TEXT NOT NULL,";
table += "surname TEXT NOT NULL,";
table += "details TEXT);";
String table2 = "CREATE TABLE favorite(";
table2 += "id TEXT PRIMARY KEY);";
String table3 = "CREATE TABLE documents(";
table3 += "id TEXT PRIMARY KEY,";
table3 += "text TEXT NOT NULL,";
table3 += "username TEXT REFERENCES users(_id));";
String table4 = "CREATE TABLE average(";
table4 += "user TEXT PRIMARY KEY,";
table4 += "document INTEGER NOT NULL,";
table4 += "avg REAL NOT NULL);";
db.execSQL(table);
db.execSQL(table2);
db.execSQL(table3);
db.execSQL(table4);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Я добавил следующую таблицу:
String table5 = "CREATE TABLE categories(";
table5 += "source TEXT PRIMARY KEY,";
table5 += "parent TEXT,";
table5 += "sub TEXT NOT NULL);";
, а затем добавить это:
db.execSQL(table5);
Итак, что же я, чтобы добавить в onUpgrade метод, чтобы пользователи имели обновленную базу данных на своем устройстве? Извините, если это может быть глупый вопрос, но я не уверен, что смогу это сделать, и я хочу чувствовать себя уверенно в том, чтобы заставить пользователей получить нужную структуру в новой версии приложения.
Я вижу, так что же я должен делать? Я просто пишу table5 в методе onUpgrade? – smartmouse