2016-08-02 3 views
-1

У меня есть ситуация:Таблица обновления базы данных Android SQLite при обновлении приложения

В новой версии приложения я добавлю еще один столбец в таблицу SQLite. Мне нужно, чтобы это изменение вступало в силу, когда приложение обновляется и не теряет данные из базы данных (путем воссоздания с новой структурой).

Может быть, в onUpgrade начните мои сценарии обновления SQL? Как это сделать правильно?

+3

Просто используйте 'команду Alter Table' SQL и добавить новый столбец. это не влияет на ваши данные. Сделайте это внутри 'onUpgrade (.....)' –

+0

Я знаю sql-скрипт, но могу ли я безопасно сделать это в onUpgrade? Что является стандартным решением для этой задачи? – Majkl

+0

Что вы ожидаете? Это единственный и стандартный способ. –

ответ

2

Вам необходимо обновить версию своей базы данных в onCreate(), а затем использовать onUpgrade(). Как это:

public YouSQLiteHandler(Context context) { 
    super(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION); --> 1 to 2 for example 


} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 


    addNewColumnTable(); 
} 

При изменении версии базы данных, Android автоматически вызывать onUpgrade() и ваша база данных будет обновляться со всеми изменениями, которые вы положили в onUpgrade() когда пользователь обновить приложение

Больше информации здесь:

http://www.michenux.net/android-database-sqlite-creation-upgrade-245.html

Смежные вопросы