android-money-manager-ex icon indicating copy to clipboard operation
android-money-manager-ex copied to clipboard

Create database destroys current database

Open jkirk opened this issue 5 years ago • 4 comments

A few facts

  • Android Version 7.0
  • Money Manager Ex Version 2019.02.24.1 (996)

Steps to reproduces

Please backup your database before trying this!

  • Create database (test.mmb)
  • Create a new account (Savings)
  • Settings -> Database -> Create database (test2.mmb)
  • Open Databse -> Other -> choose test.mmb from file system Only test2.mmb is shown, test.mmb is not listed in the recent databse list.
  • "Welcome to MoneyManagerEx" is shown, the created Savings account does not exist anymore.

Did I do something wrong? Anything I can do to help to pinpoint the problem?

Thank you

Unfortunately I lost one month of my account data but still thank you for the work on this project!

jkirk avatar Mar 09 '19 16:03 jkirk

The fact that the app does not know about your database file does not mean that it has been deleted. Did you check your file system?

alensiljak avatar Mar 09 '19 16:03 alensiljak

No, the database file isn't deleted. And - as described in the STR - I have chosen the initial database file (test.mmb) from the file system. So that is not the problem.

The problem is, that after choosing the initial database file (and only after creating a new database) the accounts are lost...

jkirk avatar Mar 09 '19 17:03 jkirk

Can you confirm that hypothesis by opening the database with any SQLite tool? I'm wondering why would that be the case. It is possible that the new database gets saved with the current name, yes. This scenario is now left hanging after the latest file handling changes.

alensiljak avatar Mar 09 '19 17:03 alensiljak

Sorry, it took quite a time to come back to this problem. Just had some time to reproduce the problem and checked the database on my computer:

This time I used data.mmb as a database file. The content of data.mmb looked like this before creating a new database:

% sqlite3 data.mmb
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> SELECT * FROM ACCOUNTLIST_V1;
1|Salary|Cash||Open||||||0|FALSE|2|||||||

And after creating a new database (foo.mmb), data.mmb looked like this:

% sqlite3 data.mmb 
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> SELECT * FROM ACCOUNTLIST_V1;
sqlite> .tables
ACCOUNTLIST_V1              CUSTOMFIELD_V1            
ASSETCLASS_STOCK_V1         INFOTABLE_V1              
ASSETCLASS_V1               PAYEE_V1                  
ASSETS_V1                   REPORT_V1                 
ATTACHMENT_V1               SETTING_V1                
BILLSDEPOSITS_V1            SHAREINFO_V1              
BUDGETSPLITTRANSACTIONS_V1  SPLITTRANSACTIONS_V1      
BUDGETTABLE_V1              SPLITTRANSACTIONS_V2      
BUDGETYEAR_V1               STOCKHISTORY_V1           
CATEGORY_V1                 STOCK_V1                  
CHECKINGACCOUNT_V1          SUBCATEGORY_V1            
CURRENCYFORMATS_V1          TRANSLINK_V1              
CURRENCYHISTORY_V1          USAGE_V1                  
CUSTOMFIELDDATA_V1          android_metadata 

So yes, it seems that the currently used database file is re-initialized before the new one database is created.

jkirk avatar Nov 14 '19 00:11 jkirk