2013-09-24 1 views
1

Я хочу добавить некоторые ключи, такие как «URL», в существующую таблицу.Как выполнить легкую миграцию в базе данных sqlite на Android так же, как iOS?

В iOS я могу создать новую версию модели данных и выполнить легкую миграцию.

Однако способ по умолчанию в SQLiteOpenHelper, похоже, уничтожает старую БД и создает новую.

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_1 + ", " 
      + TABLE_2 + ", " + TABLE_3 + ", " 
      + TABLE_4); 
    // Create tables again 
    onCreate(db); 
} 

Как сохранить старую базу данных и добавить новые ключи в Android?

+0

использовать команду ALTER TABLE SQL. Код, который вы опубликовали, является самой тривиальной реализацией. он не предназначен для фактического использования, но только для того, чтобы работать достаточно хорошо для примера, который не фокусируется на обновлении базы данных. – njzk2

ответ

1

Вы можете написать свой собственный SQL-запрос Upgrade для обновления базы данных.

Call onCreate после извлечения всех таблиц - это простой способ обновить таблицы, не заботясь о FK, нулевых полях или версии базы данных.

Используйте oldVersion и newVersion, чтобы внести правильные изменения (изменить таблицу) в своей базе данных.

onUpgrade doc

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

  • Нет связанных вопросов^_^