I am using Room Persistence Library 1.1.0. I could find the database file at /data/data/<package_name>/databases/ using Android Studio's Device File Explorer.
It contains multiple tables and I can access contents of that tables without any problem using room-DAOs. However when opening with sqlite-browser, is shows no table.
What might be the reason? Is it possible to resolve the issue without switching back to old SQLiteOpenHelper from room?
Solution
To open such databases* with
sqlite-browser, you need to copy all three files. All must be in the same directory.* Databases stored in multiple files as stated in the question.
Why three files?
As per docs, Starting from version
1.1.0, Room useswrite-ahead loggingas default journal mode for devices which has sufficient RAM and running on API Level 16 or higher. It wasTruncatefor all devices until this version.write-ahead logginghas different internal structure compared toTruncate.Take a look at the files temporary files used by
SQLitenow and then :Until version 1.1.0
From version 1.1.0
If you want to change the journal mode explicitly to
Truncate, you can do it this way. But, it is not recommended becauseWALis much better compared toTruncate.Is it possible to move it to single file without changing to
Truncate?Yes, it is. Query the following statement against the database.
It is discussed in detail here here.