agrosner / DBFlow

A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
MIT License
4.87k stars 598 forks source link

Restore Backup not working #1710

Open baranowskinet opened 3 years ago

baranowskinet commented 3 years ago

DBFlow Version: 4.2.4

Bug Request: When database is corrupted in way that integrity check returns not ok restore db doesn't work.

Description: In DatabaseHelperDelegate.restoreBackup there is a bug related to get proper file names. Instead of X.getDatabaseName() inside FlowManager.getContext().getDatabasePath() there should be X.getDatabaseFileName()

also, I think temp database name should contains the same extention and code needs changes:

public static String getTempDbFileName(DatabaseDefinition databaseDefinition) {
    return TEMP_DB_NAME + databaseDefinition.getDatabaseName() + databaseDefinition.getDatabaseExtensionName();
}

and last thing. In restoreBackup system should close database before file copy. In other case after reopen there will be a problem with still opened corrupted db.

Kind regards, Krzysztof