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.