Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


OnUpgrade () base de datos sqlite en Android

He creado una aplicación de Android que, compruebe en el inicio si hay una nueva versión de la aplicación. En caso afirmativo, la aplicación descarga el nuevo archivo apk y sobre-instala el nuevo apk. Mi aplicación utiliza el sqlite db. Pero este db, de una versión a otra puede cambiar. Creo que tengo que usar el método:

onUpgrade() 

Pero no sé exactamente cómo usarlo.

Cuando inicio la aplicación, utilizo este código para la base de datos crete (si no existe):

 DbHelper mDHelper = new DbHelper(context, DB_NAME, null, DB_VERSION) 

¿Qué debo cambiar si quiero usar el método onUpgrade() ? ¿Y cuándo tengo que llamarla?

  • SQLite de Android Cursor fuera de límites de excepción en SELECT count (*) FROM table
  • La base de datos Sqlite onUpgrade () no se llama
  • ¿Cómo usar SQLiteOpenHelper con la base de datos en sd-card?
  • Cómo recuperar datos de la tabla secundaria con CursorLoader que carga datos de la tabla principal?
  • Cómo realizar operaciones de base de datos mediante Async Task
  • Cuente el número de tablas en la base de datos sqlite
  • Android y SQLite - recupera el ID máximo de la tabla
  • RawQuery Vs. Database.query
  • 2 Solutions collect form web for “OnUpgrade () base de datos sqlite en Android”

    onUpgrade() se llama (no lo llama usted mismo) cuando la versión de su base de datos cambió, lo que significa la estructura de la tabla subyacente cambiado, etc

    En general, significa que el sistema operativo está diciendo " hey, usted pidió la estructura de base de datos de la versión 10, pero me pareció que tenemos algo más antiguo aquí, por lo que esta es la oportunidad de arreglar eso antes de empezar a utilizar base de datos (y potencialmente debido a falta de estructura desajuste) " .

    En ese método debe hacer todo lo que sea necesario para, así .. actualizar la estructura de su antigua base de datos a la estructura de los requisitos de la versión actual como la adición / caída de columnas, la conversión de contenido de la fila o incluso dejar caer el viejo db por completo y crear desde cero – No importa lo que haga aquí – es sólo una especie de devolución de llamada de emergencia para su código para hacer el trabajo necesario (si lo hay). Debe tener en cuenta que los usuarios no pueden actualizar frecuentemente, por lo que siempre debe manejar la actualización de la versión X a Y sabiendo que X no puede ser igual a (Y-1).

    Si está utilizando SQLiteOpenHelper, se llamará onUpgrade cada vez que cambie la versión de la base de datos. Hay un requisito adicional para que esto funcione. El nombre del db debe permanecer igual.

     Old Version: dbName = "mydb.db" dbVersion = 1 New Version: dbName = "mydb.db" dbVersion = 2 

    En el onCreate del proveedor de contenido que crear una instancia de la SQLiteOpenHelper que toma estos parámetros. Su implementación SQLiteOpenHelper se vería así:

     public static final class MySQLiteOpenHelper extends SQLiteOpenHelper { public MySQLiteOpenHelper(Context context, int dbVersion, String dbName) { super(context, dbName, null, dbVersion); } @Override public void onCreate(SQLiteDatabase db) { //Code to create your db here } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Code to upgrade your db here } } 

    También se le llamará cuando altere la tabla o agregue más tablas en su base de datos

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.