androidandroid-sqlitesugarorm

Delete all data from all tables in Sugar ORM


I use Sugar ORM 1.5 in my app and I want to clear all info when the user logoff.

I want to avoid deleting the database file or use pure SQLite scripts if possible.

The only solution I found was using deleteAll on all tables, but I want to know if there is a better way to do it.

Regards,

EDIT

I solve the problem I had deleting the database just calling SugarContext.terminate(); before deleting the database and SugarContext.init(context); after.

Looks like it's the best solution like Henry Dang pointed in the comments, and it is faster than deleting all data.


Solution

  • This snippet works for me. It terminates the context deletes all tables and recreates them:

    SugarContext.terminate();
    SchemaGenerator schemaGenerator = new SchemaGenerator(getApplicationContext());
    schemaGenerator.deleteTables(new SugarDb(getApplicationContext()).getDB());
    SugarContext.init(getApplicationContext());
    schemaGenerator.createDatabase(new SugarDb(getApplicationContext()).getDB());
    

    SchemaGenerator is from com.orm, my SugarORM version is 1.5.