Androidのエミュレーターにアプリをデプロイすると、DBもデプロイされます。DBに変更を加えても、エミュレータに再度デプロイされることはありません。これを行うには、デバイスマネージャからエミュレータを削除して新しいエミュレータを作成する必要があるたびに。このプロセスは本当に面倒です。エミュレータからDBを削除して、新しいDBをデプロイする方法についてのアイデアはありません。
6 に答える
コンストラクターまたは SQLIteOpenHelper を拡張するクラスで提供するデータベースのバージョンを上げる必要があるだけです......
SQLIteOpenHelper で onUpgrade をオーバーライドします。
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion)
Log.v("Database Upgrade", "Database version higher than old.");
myContext.deleteDatabase(DB_NAME);
}
より簡単に:
DDMS prespective を開く (メニュー ウィンドウ >> 新しい prespective を開く)
ファイル探索タグを選択します。
次に、データ > データ > パッケージ名 > データベース > データベース名に移動します。
そして削除
次の手順を実行します:
DDMS > 左側のパネルからエミュレーターを選択
右側から fileexplorer を選択 > アプリケーション パッケージを選択 データベース フォルダをクリックしてデータベースを選択し、右上から削除 (「赤色のマイナス」)
早くて簡単:
context.deleteDatabase(DATABASE_NAME);
エミュレーターを削除するのではなく、データベースを削除します
ddms----> ファイル エクスプローラー ----> data/data/your_package_name --->databases --->yourdatabase .
そしてそれを削除します。
もう1つできること
アプリケーションをアンインストールして再度インストールすると、データベースが削除され、データベースが再度作成されます。
データベースを削除したい場合のもう1つの方法は、テーブルを削除して、以下に示すようにテーブルを再度作成することです。
String Droptable="drop table if exists item_master"; // where item_master is table name
myDataBase.execSQL(Droptable);
ドロップした後、次のように再作成します
String Createtable="CREATE TABLE \"item_master\" (\"item_id\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , \"item_name\" VARCHAR, \"item_img\" VARCHAR, \"item_s_desc\" TEXT, \"item_desc\" TEXT, \"item_map\" VARCHAR, \"bookmark\" VARCHAR DEFAULT N, \"category_id\" INTEGER)";
myDataBase.execSQL(Createtable);
必要に応じて、列名を変更したり、列を追加または削除したりできます