在升级应用程序时删除SQLite数据库

GVi*_*i82 1 database sqlite android upgrade

我实现了一个使用Sqlite数据库的Android应用程序.

当我发布我的应用程序的新版本(不在playStore中)时,我将其上传到我的服务器上,因此,如果旧应用程序正在运行,调用Web服务,可以理解新版本可用.因此,下载并安装新版本.

当应用程序被重载时,数据库不会被删除,所以如果我需要对数据库进行任何更改,我需要使用以下方法:

public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion)
Run Code Online (Sandbox Code Playgroud)

这很好,除非我需要在我的数据库中做很多更改.在这种情况下,代码变得不可读.所以我想删除数据库并创建一个新数据库.

我该如何执行此任务?

编辑:怎么用context.deleteDatabase(DATABASE_NAME);

laa*_*lto 7

对于丢弃数据库(其中数据是例如云中可用的数据的缓存副本),我通常在创建表之前onUpgrade()调用onCreate()onCreate()执行DROP TABLE IF EXISTS <tablename>.

例如:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  onCreate(db);
}

@Override
public void onCreate(SQLiteDatabase db) {
  db.execSQL("DROP TABLE IF EXISTS foo");
  db.execSQL("CREATE TABLE foo(bar INTEGER, baz TEXT");
}
Run Code Online (Sandbox Code Playgroud)