2011-08-11 17 views
1

Eclipseから自分の携帯に新しいバージョンのアプリケーションを送信するたびに私のアプリケーションのデータベースを消去して再作成したいと考えています(私はデータベースを頻繁に開発して変更しています)。これを行う最も簡単な方法は何ですか?Android:sqliteデータベースを取り除く

答えて

0

これがライブになってからしたくない場合は、毎回アプリケーションマネージャからデータを消去するだけです。また、あなたは別のデータベースのバージョン番号を作り、ONUPGRADEを破壊していると私は私のコードでは、この1 :)変更スーパー(コンテキスト、DBNAME、ヌル、<データベースのバージョンを使用してDB

private static final String DATABASE_NAME = "MyDbName"; 
private static final int DATABASE_VERSION = 6; 
private static class DbOpenHelper extends SQLiteOpenHelper{ 

public DbOpenHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    onUpgrade(this.getWritableDatabase(), 0, 0); 
     // 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(TableHelper1.CREATE_TABLE_QUERY); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS "+ TableHelper1.TABLE_NAME); 

     onCreate(db); 
    } 

} 
+0

アップグレード機能では、どのような方法が最適ですか?すべてのテーブルを削除してから、onCreate関数を呼び出します。 – tjb

+1

通常、データベースのバージョンを指定するSQLiteOpenHelperのフィールドがあり、それをコンストラクタに渡します。public SQLiteOpenHelper(コンテキストコンテキスト、String名、SQLiteDatabase.CursorFactoryファクトリ、intバージョン) dbを置き換える準備ができたら、バージョンを増やしてください。 – aha

+0

Pyrodante、私の編集を見直して受け入れてください。これにより、再起動するたびにデータベースが更新されます。クリーンインストールで残念ながら作成され、2回破棄されます – tjb

0

Eclipseでは、左側の[Debug Configurations]、[Android Application]の順に進みます。使用しているデバッグ構成を選択し、[ターゲット]タブを選択します。

下部には、「ユーザーデータを消去する」というチェックボックスが表示されます。

これをチェックすると、シミュレータを起動するたびに、アプリケーションに関連するデータ(SQLiteデータベースを含む)が消去されます。

アプリケーションは、SQLiteOpenHelperのonCreate()を呼び出し、データベースが再作成されます。

+0

エミュレータを再起動する必要があるので、これは好ましくありません。バージョンの更新よりも時間がかかります。また、エミュレータではなく電話でのデバッグには適用されません。 – aha

2
public class DatabaseHelper extends SQLiteOpenHelper { 

public DatabaseHelper(Context context) { 
    super(context, dbName, null, 1); 

} 
@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE USERS (username TEXT, password TEXT);"); 
} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS USERS"); 
    onCreate(db); 
} 

を再作成することができますnumber>); onUpgradeメソッドを実行します。

関連する問題