Programmatically erase data of a sqlite database using ormlite library

You can call

context.deleteDatabase(DATABASE_NAME);

in your DatabaseHelper class which extends OrmLiteSqliteOpenHelper. context is passed to the DatabaseHelper class in the constructor.

The next time the database is needed, it is recreated and

@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)

is called.


I'd looking for a method to erase all data of a ormlite database or delete the database (and then recreate it) with ormlite on android.

@Julia's answer will work well. ORMLite also supports a TableUtils.clearTable() method call which removes all rows from a table:

That won't clear a database but you can clear each table in turn. Something like the following:

TableUtils.clearTable(getConnectionSource(), YourClassHere.class);

Edit:

@max4ever pointed out that context.deleteDatabase(...) is a lot faster than other ways of clearing a database. But this call will remove the table definitions while TableUtils.clearTable(...) leaves the schema intact.


To delete the database use these commands:

this.connectionSource.close();
context.deleteDatabase(DATABASE_NAME);

To recreate/open the current database use these commands:

SQLiteDatabase db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
this.connectionSource = new AndroidConnectionSource(db);

You will have to keep a reference to the context in your database helper.