From ef9203dd2a3acef36610e5f9044ae2fd7f84241c Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 23 Apr 2025 01:11:26 +0200 Subject: [PATCH 1/2] Update --- .../drift-instrumentation.mdx | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/includes/dart-integrations/drift-instrumentation.mdx b/includes/dart-integrations/drift-instrumentation.mdx index 57ab6762bbd6d7..5751ce84849fc0 100644 --- a/includes/dart-integrations/drift-instrumentation.mdx +++ b/includes/dart-integrations/drift-instrumentation.mdx @@ -10,10 +10,6 @@ platforms: - flutter --- - - -_(New in version 7.13.1)_ - Drift is a library for easily managing SQLite databases within Flutter applications. The [sentry_drift](https://pub.dev/packages/sentry_drift) package provides `Drift` support for database performance instrumentation and allows you to track the performance of your queries. @@ -34,23 +30,37 @@ Add the `sentry_drift` dependency to install the Drift database instrumentation. ```yml {filename:pubspec.yaml} dependencies: -sentry_flutter: ^{{@inject packages.version('sentry.dart.flutter', '7.13.1') }} -sentry_drift: ^{{@inject packages.version('sentry.dart.drift', '7.13.1') }} +sentry_flutter: ^{{@inject packages.version('sentry.dart.flutter', '9.0.0') }} +sentry_drift: ^{{@inject packages.version('sentry.dart.drift', '9.0.0') }} ``` -## Configure +## Setup -Inject `SentryQueryExecutor` into a `Drift` database instance: +Add the `SentryQueryInterceptor` to a `QueryExecutor` or `DatabaseConnection`. -```dart +For more information on how to use interceptors in Drift, read the [Drift documentation](https://drift.simonbinder.eu/examples/tracing/). + +```dart {tabTitle: 'QueryExecutor'} import 'package:drift/native.dart'; import 'package:sentry_drift/sentry_drift.dart'; -final executor = SentryQueryExecutor( - () => NativeDatabase.memory(), // You can also provide your own database opener - databaseName: 'my_db_name', -); -final database = AppDatabase(executor); // AppDatabase is an example of the auto-generated database class by Drift. +final interceptor = SentryQueryInterceptor(databaseName: 'my_database_name'); +final executor = inMemoryExecutor().interceptWith(interceptor); + +// AppDatabase is an example of the auto-generated database class by Drift. +final database = AppDatabase(executor); +``` + +```dart {tabTitle: 'DatabaseConnection'} +import 'package:drift/native.dart'; +import 'package:sentry_drift/sentry_drift.dart'; + +final interceptor = SentryQueryInterceptor(databaseName: 'my_database_name'); +// AppDatabase is an example of the auto-generated database class by Drift. +final database = AppDatabase(inMemoryExecutor()); +await database.runWithInterceptor(interceptor: interceptor, () async { + // Only database operations in this block will reach the interceptor. +}); ``` ## Verify @@ -71,10 +81,8 @@ Future driftTest() async { 'op', bindToScope: true ); - final executor = SentryQueryExecutor( - () => NativeDatabase.memory(), - databaseName: 'your_db_name', - ); + final interceptor = SentryQueryInterceptor(databaseName: 'my_database_name'); + final executor = inMemoryExecutor().interceptWith(interceptor); final db = AppDatabase(executor); await db.into(db.todoItems).insert( From ab2c00bf3b0aa5cfc3aacfe550093a4a23c8bcfb Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 23 Apr 2025 01:15:35 +0200 Subject: [PATCH 2/2] Update --- includes/dart-integrations/drift-instrumentation.mdx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/includes/dart-integrations/drift-instrumentation.mdx b/includes/dart-integrations/drift-instrumentation.mdx index 5751ce84849fc0..0c09bd96a3c1e0 100644 --- a/includes/dart-integrations/drift-instrumentation.mdx +++ b/includes/dart-integrations/drift-instrumentation.mdx @@ -37,13 +37,9 @@ sentry_drift: ^{{@inject packages.version('sentry.dart.drift', '9.0.0') }} ## Setup Add the `SentryQueryInterceptor` to a `QueryExecutor` or `DatabaseConnection`. - -For more information on how to use interceptors in Drift, read the [Drift documentation](https://drift.simonbinder.eu/examples/tracing/). +Read the [Drift documentation](https://drift.simonbinder.eu/examples/tracing/) for more information on how to use interceptors in Drift. ```dart {tabTitle: 'QueryExecutor'} -import 'package:drift/native.dart'; -import 'package:sentry_drift/sentry_drift.dart'; - final interceptor = SentryQueryInterceptor(databaseName: 'my_database_name'); final executor = inMemoryExecutor().interceptWith(interceptor); @@ -52,9 +48,6 @@ final database = AppDatabase(executor); ``` ```dart {tabTitle: 'DatabaseConnection'} -import 'package:drift/native.dart'; -import 'package:sentry_drift/sentry_drift.dart'; - final interceptor = SentryQueryInterceptor(databaseName: 'my_database_name'); // AppDatabase is an example of the auto-generated database class by Drift. final database = AppDatabase(inMemoryExecutor());