Flutter Isar数据库中,如何检查数据库schema是否为空?

问题描述 投票:0回答:2

在ObjectBox数据库中,我们可以使用box.isEmpty()方法检查框是否为空。同样如何检查 Isar 数据库模式是否为空。因为在我的应用程序中,我有一个场景,只有当数据库为空时才会将数据插入到数据库中。

database flutter dart is-empty flutter-isar
2个回答
1
投票

假设您有一个名为

Client
的架构。您可以通过获取模式的计数来检查
Client
集合是否为空:

final isar = await Isar.open([ClientSchema]);
final count = await isar.clients.count();

来自文档:

返回此集合中的对象总数。对于非网络 应用程序,此方法非常快并且与应用程序的数量无关 集合中的对象。


0
投票

可能有更好的方法来做到这一点,但这可行(这将加载所有条目,因此如果它很大,那么这种方法不是很有效):

db = await Isar.open([DrawSchema], directory: dbPath);

{Your stuff happens here}

final isEmpty = (await db.draws.where().findAll()).length==0;

YMMV

© www.soinside.com 2019 - 2024. All rights reserved.