2013-06-03 39 views
20

Android uygulaması geliştirdim ve 1.0 sürümü yayınladım. App 5 tablolar ile SQLite yerel veritabanı içerir.Android SQLite veritabanı ve uygulama güncellemesi

Artık sürüm 2.0'ı da sürüm 1.0 kullanıcılarını da güncellemeyi planladık. 2.0 sürümünde, önceki 5 tabloyla birlikte fazladan iki tablo ekledik, şimdi 7 tablo.

Şimdi benim sorum şu: Versiyon 1.0 kullanıcılarının yerel veritabanında bazı verileri var, Sürüm 2.0'a güncellemişse, önceki veriler kaybolur mu? Eğer öyleyse. o zaman alternatif yöntem nedir?

+0

DB mimarisini değiştirirseniz, eski DB kalmaz – thepoosh

+0

@ thepoosh Cevabınız için teşekkür ederiz. DB mimarisini değiştirmediysem ancak sürümü yeni özelliklerle güncellediysem. Bu durumda? –

+2

bu cevabı okumayı deneyin: http://stackoverflow.com/a/8627242/1056359 – thepoosh

cevap

22

takın:

@Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " + 
    "name_of_column_to_be_added" + " INTEGER"; 
    db.execSQL(sql);   
}   

bu mevcut veritabanındaki bir sütun ekler. Veritabanınız veri kaybetmez. Hatırlatma: getWriteableDatabase veya getReadableDatabase yürütüldüğünde onUpgrade çağrılır VE veritabanınızın sürümü eski sürümünüzden farklıdır.

+0

Sadece netleştirmek için TABLE_SECRET tablo ismidir. – Rexcirus

1

Bazı eski verileri SQLiteOpenHelper#onUpgrade üzerinde yapabilir, bazı eski verileri alabilirsiniz. ve sen bu kodu kullanabilirsiniz sizin ONUPGRADE yönteminde tüm değişiklikleri koymalıyız yeni bir tablo

2

Db sürümünüzü değiştirin ve onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion) yönteminize ikiden fazla tablo oluşturma yöntemi ekleyin. Şimdi önceki veriler kaybolmayacak.

Umarım bu size yardımcı olacaktır.

İlgili konular