2010-02-09 9 views
7

Ho un'applicazione incompleta, ma voglio affrontare ora il futuro aggiornamento di esso.Come aggiornare lo schema della tabella dopo un aggiornamento dell'app su Android?

Supponiamo che la mia app sia stata aggiornata, quindi all'avvio rileva che lo schema del database non è aggiornato. Quindi, per ogni tabella deve essere aggiornato in base al numero di versione nel nuovo schema preservando tutti i dati.

Ho letto da qualche parte che su Android il database SQLite ha qualche numero di versione e aggiornamenti automatici, ma non ho trovato un esempio per questo specifico problema.

Come può essere realizzato su un'app Android, utilizzando i database SQLite?

Esiste un numero di versione specifico per tabella memorizzato su database SQLite Android? In tal caso, come posso leggerlo e utilizzarlo per il mio scopo precedente?

risposta

6

SQLiteOpenHelper è il tuo amico qui.

È necessario fornire i metodi onCreate e onUpgrade.

+0

come mantenere i vecchi record? il metodo Notepad onUpgrade non lo specifica. Inoltre, come posso rilevare se una determinata tabella ha bisogno solo di aggiornamento? – Pentium10

+4

Si mantiene il vecchio record utilizzando le istruzioni ALTER TABLE o le tabelle temporanee, come con qualsiasi database SQL. Android assiste solo a dirti se il tuo schema generale cambia: spetta a te determinare quali tabelle e così via devono essere cambiate. – CommonsWare

+0

(1) Posso creare SQLiteOpenHelper per ogni tabella separatamente, quindi posso mantenere onCreate e onUpgrade distintamente su quelle classi, e verrà eseguito onUpgrade per ciascuna della mia classe quando viene istanziato? (2) Oppure creerò solo 1 classe SQLiteOpenHelper nella mia intera app e includo tutte le tabelle create tutti gli aggiornamenti nella stessa posizione? (3) Come posso trasferire il mio database SQLite dall'emulatore al mio PC? (4) Devo crittografare il database o gli store Android in un posto sicuro? – Pentium10

1

Hai guardato SQLiteOpenHelper?

+0

come mantenere i vecchi record? il metodo Notepad onUpgrade non lo specifica. Inoltre, come posso rilevare se una determinata tabella ha bisogno solo di aggiornamento? – Pentium10

Problemi correlati