我有纯(不是 Expo)React Native 应用程序,带有 WatermelonDB 库用于数据库访问。
安装在 Android 设备上后,应用程序可以创建、初始化和查询数据库,尽管 Flipper 的数据库看不到任何可供应用程序使用的数据库。
调查显示,db 文件是在应用程序的根目录中创建的,而不是在数据库中创建的。如果我将 db 文件移动到数据库目录 Flipper 开始看到数据库。
父亲代码挖掘给出了这个(WMDatabase.java:51):
// On some systems there is some kind of lock on `/databases` folder ¯\_(ツ)_/¯
path = context.getDatabasePath("" + name + ".db").getPath().replace("/databases", "");
换句话说,WatermelonDB lib 故意将 db 文件移到 /databases 目录之外。
所以问题:
确保当您使用
openDatabase
时,输入扩展名 .db 例如
import { openDatabase } from 'expo-sqlite';
export const DB = openDatabase('mySales.db');
然后它应该出现在 Flipper 的数据库中。