0

Android アプリをリリースしようとしていますが、データベースのバージョン管理について少し心配しています。

問題は、実行時にのみデータベースを使用することです。アプリケーションを起動するたびに、永続化する必要がないため、すべてのコンテンツを削除します。コードは次のようになります。

public synchronized void createDatabase() {
    if (database == null) {
        database =  this.openOrCreateDatabase(DATABASENAME, MODE_PRIVATE, null);
    }

    database.execSQL("DROP TABLE IF EXISTS " + Xxxxxxxx.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Yyyyyyyy.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Oooooooo.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Ppppppppp.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Mmmmmmmmm.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Aaaaaaaaa.TABLE_NAME);

    database.execSQL(Xxxxxxxx.CREATE_PROVIDERS_TABLE);
    database.execSQL(Yyyyyyyy.CREATE_CONTENTS_TABLE);
    database.execSQL(Oooooooo.CREATE_EVENTS_TABLE);
    database.execSQL(Ppppppppp.CREATE_EVENTS_ANSWERS_TABLE);
    database.execSQL(Mmmmmmmmm.CREATE_CATEGORY_TABLE);
    database.execSQL(Aaaaaaaaa.CREATE_SUBCATEGORY_TABLE);
}

私の質問は、アプリの起動時にすべてを削除する方法を考えると、異なるバージョンを制御する必要があるかどうかです。将来、新しい列を追加するとどうなりますか? それは適切に動作しますか?

前もって感謝します

4

2 に答える 2

0

アプリの起動時にすべてを削除する方法を考えると、異なるバージョンを制御する必要がありますか? 将来、新しい列を追加するとどうなりますか? それは適切に動作しますか?

すべてのテーブルを削除して再作成しているため、データベースのバージョンを制御する必要はありません。既存のデータベースをアップグレードしてテーブルを変更する場合は、データベースのバージョンを変更する必要があります。これが役立つことを願っています

于 2012-11-28T09:46:59.080 に答える
0

db のバージョン管理についてはまったく心配する必要はないと思います。

将来のバージョンで実際に DB スキーマを変更しても、次の起動時にすべてのテーブルが削除/再作成されるため、問題ありません。

于 2012-11-28T09:35:11.490 に答える