我正在使用Room Persistence Library 1.1.0.我可以使用
Android Studio的Device File Explorer在/ data / data /< package_name> / databases /找到数据库文件.它包含多个表,我可以使用room-DAO访问那些表的内容而没有任何问题.但是当用sqlite-browser打开时,显示没有表.
解决方法
解
要使用sqlite-browser打开此类数据库*,您需要复制所有三个文件.所有人都必须在同一个目录中.
为什么三个文件?
根据文档,从版本1.1.0开始,Room使用预写日志记录作为具有足够RAM并在API级别16或更高级别上运行的设备的默认日志模式.在此版本之前,所有设备都是Truncate.与Truncate相比,预写日志记录具有不同的内部结构.
直到版本1.1.0
从1.1.0版开始
如果要将日志模式明确更改为Truncate,可以这样做.但是,不建议这样做,因为与Truncate相比,WAL要好得多.
public static void initialize(Context context) { sAppDatabase = Room.databaseBuilder( context,AppDatabase.class,DATABASE_NAME) .setJournalMode(JournalMode.TRUNCATE).build(); }
是否可以将其移动到单个文件而无需更改为Truncate?
pragma wal_checkpoint(full)
Here是我自己的相关帖子.