Future<T> transaction<T>(Future<T> Function() action) async { try { return await db.transaction<T>((_) => action()); } catch (_) { _clearCaches(); rethrow; } }