diff --git a/library/src/main/java/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java b/library/src/main/java/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java index ebee1c9..29265e8 100755 --- a/library/src/main/java/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java +++ b/library/src/main/java/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java @@ -66,6 +66,7 @@ public class SQLiteAssetHelper extends SQLiteOpenHelper { private SQLiteDatabase mDatabase = null; private boolean mIsInitializing = false; + private boolean databaseNewlyCreated = false; private String mDatabasePath; @@ -178,7 +179,7 @@ public synchronized SQLiteDatabase getWritableDatabase() { int version = db.getVersion(); // do force upgrade - if (version != 0 && version < mForcedUpgradeVersion) { + if (!databaseNewlyCreated && version < mForcedUpgradeVersion) { db = createOrOpenDatabase(true); db.setVersion(mNewVersion); version = db.getVersion(); @@ -187,7 +188,7 @@ public synchronized SQLiteDatabase getWritableDatabase() { if (version != mNewVersion) { db.beginTransaction(); try { - if (version == 0) { + if (databaseNewlyCreated) { onCreate(db); } else { if (version > mNewVersion) { @@ -392,12 +393,14 @@ private SQLiteDatabase createOrOpenDatabase(boolean force) throws SQLiteAssetExc if (force) { Log.w(TAG, "forcing database upgrade!"); copyDatabaseFromAssets(); + databaseNewlyCreated = true; db = returnDatabase(); } return db; } else { // database does not exist, copy it from assets and return it copyDatabaseFromAssets(); + databaseNewlyCreated = true; db = returnDatabase(); return db; }