2010-02-09 19 views
7

Tengo una aplicación sin terminar, pero quiero abordar ahora la futura actualización de la misma.¿Cómo actualizar el esquema de la tabla después de una actualización de la aplicación en Android?

Supongamos que mi aplicación se actualizó, por lo que cuando se inicia, detecta que el esquema de la base de datos está desactualizado. Por lo tanto, para cada tabla, debe actualizar según el número de versión al nuevo esquema, conservando todos los datos.

He leído en alguna parte que en Android la base de datos SQLite tiene algún número de versión y actualización automática, pero no encontré un ejemplo para este problema específico.

¿Cómo se puede lograr esto en una aplicación de Android, usando bases de datos SQLite?

¿Hay un número de versión específico por tabla almacenada en bases de datos Android SQLite? Si es así, ¿cómo puedo leerlo y usarlo para mi propósito anterior?

Respuesta

6

SQLiteOpenHelper es tu amigo aquí.

Debe suministrar los métodos onCreate y onUpgrade.

+0

¿cómo guardo los registros antiguos? el método de actualización de Notepad no especifica esto. Además, ¿cómo puedo detectar si una tabla en particular solo necesita actualización? – Pentium10

+4

Mantiene el registro anterior utilizando sentencias ALTER TABLE o tablas temporales, como con cualquier base de datos SQL. Android solo ayuda a decirle si el esquema general cambia; usted decide qué tablas y demás deben cambiarse. – CommonsWare

+0

(1) ¿Puedo crear SQLiteOpenHelper para cada tabla por separado, entonces puedo mantener onCreate y onUpgrade claramente en esas clases, y se ejecutará el onUpgrade para cada una de mi clase cuando se haga una instancia? (2) ¿O crearé solo 1 clase SQLiteOpenHelper en toda mi aplicación, e incluiré todas las tablas de creación y todas las actualizaciones en la misma ubicación? (3) ¿Cómo puedo transferir mi base de datos SQLite del emulador a mi PC? (4) ¿Debo cifrar la base de datos o las tiendas de Android en un lugar seguro? – Pentium10

1

¿Has mirado SQLiteOpenHelper?

+0

¿Cómo guardo los registros antiguos? el método de actualización de Notepad no especifica esto. Además, ¿cómo puedo detectar si una tabla en particular solo necesita actualización? – Pentium10

Cuestiones relacionadas