From 4c13c2cfbb320e0ce0216fc90648a5184266a0e9 Mon Sep 17 00:00:00 2001 From: UTO Manager Dev Date: Sun, 9 Aug 2026 10:33:57 -0400 Subject: [PATCH] fix(web): replace NativeDatabase with drift_flutter driftDatabase() for web compatibility --- lib/infrastructure/database/app_database.dart | 18 +++---- pubspec.lock | 48 +++++++++---------- pubspec.yaml | 1 + 3 files changed, 31 insertions(+), 36 deletions(-) diff --git a/lib/infrastructure/database/app_database.dart b/lib/infrastructure/database/app_database.dart index 1ab34f7..e1bac8d 100644 --- a/lib/infrastructure/database/app_database.dart +++ b/lib/infrastructure/database/app_database.dart @@ -1,9 +1,5 @@ -import 'dart:io'; - import 'package:drift/drift.dart'; -import 'package:drift/native.dart'; -import 'package:path/path.dart' as p; -import 'package:path_provider/path_provider.dart'; +import 'package:drift_flutter/drift_flutter.dart'; import 'package:uto_manager/infrastructure/database/daos/personnel_dao.dart'; import 'package:uto_manager/infrastructure/database/daos/position_slot_dao.dart'; import 'package:uto_manager/infrastructure/database/daos/template_dao.dart'; @@ -102,11 +98,9 @@ class AppDatabase extends _$AppDatabase { ); } -/// Opens the SQLite database connection for native platforms. -LazyDatabase _openConnection() { - return LazyDatabase(() async { - final dbFolder = await getApplicationDocumentsDirectory(); - final file = File(p.join(dbFolder.path, 'uto_manager.sqlite')); - return NativeDatabase.createInBackground(file); - }); +/// Opens a platform-adaptive database connection. +/// +/// Uses SQLite via FFI on Windows/Android and WASM/IndexedDB on Web. +QueryExecutor _openConnection() { + return driftDatabase(name: 'uto_manager'); } diff --git a/pubspec.lock b/pubspec.lock index b0c8cc7..1a04817 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: cd6add6f846f35fb79f3c315296703c1a24f3cfd7f4739d91a74961c1c7e9f1b + sha256: "3b19a47f6ea7c2632760777c78174f47f6aec1e05f0cd611380d4593b8af1dbc" url: "https://pub.dev" source: hosted - version: "100.0.0" + version: "96.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "6ba98576948803398b69e3a444df24eacdbe12ed699c7014e120ea38552debbf" + sha256: "0c516bc4ad36a1a75759e54d5047cb9d15cded4459df01aa35a0b5ec7db2c2a0" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "10.2.0" args: dependency: transitive description: @@ -125,10 +125,10 @@ packages: dependency: transitive description: name: cli_util - sha256: "71e43f1976c3eae2d9468a5b4d6600bf8cae61508b87f27fa1799228935d48ab" + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.5.2" + version: "0.4.2" clock: dependency: transitive description: @@ -181,26 +181,34 @@ packages: dependency: transitive description: name: dart_style - sha256: "59d53ef8eaed9d288ed9767618e2b31c4fa0383a127db59d5eb2e737a7638a60" + sha256: "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2" url: "https://pub.dev" source: hosted - version: "3.1.9" + version: "3.1.7" drift: dependency: "direct main" description: name: drift - sha256: "3a3f1f6f905037d7426e4c445854139fd6a3d592135f7c96d7931682b73d16f4" + sha256: "970cd188fddb111b26ea6a9b07a62bf5c2432d74147b8122c67044ae3b97e99e" url: "https://pub.dev" source: hosted - version: "2.34.3" + version: "2.31.0" drift_dev: dependency: "direct dev" description: name: drift_dev - sha256: "735aad3c34215805c66bd518c8812fa4f83b5534b2c13c4092c970c04a7e9983" + sha256: "917184b2fb867b70a548a83bf0d36268423b38d39968c06cce4905683da49587" url: "https://pub.dev" source: hosted - version: "2.34.5" + version: "2.31.0" + drift_flutter: + dependency: "direct main" + description: + name: drift_flutter + sha256: c07120854742a0cae2f7501a0da02493addde550db6641d284983c08762e60a7 + url: "https://pub.dev" + source: hosted + version: "0.2.8" equatable: dependency: "direct main" description: @@ -427,14 +435,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" - native_toolchain_c: - dependency: transitive - description: - name: native_toolchain_c - sha256: f9c168717100ae6d9fee9ffb0be379bf1f8b26b0f6bcbd4fdddcd931993a6a72 - url: "https://pub.dev" - source: hosted - version: "0.19.2" nested: dependency: transitive description: @@ -628,10 +628,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "64b2c63c8232dd20d14b34105a81ebfd74320442e8451f836179ec89986aa478" + sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" url: "https://pub.dev" source: hosted - version: "3.5.1" + version: "2.9.4" sqlite3_flutter_libs: dependency: "direct main" description: @@ -644,10 +644,10 @@ packages: dependency: transitive description: name: sqlparser - sha256: "772bb2f6f5bce0631a60f26b57d6e8882e1105c22345b05c163ee6ee5d7ba32d" + sha256: "337e9997f7141ffdd054259128553c348635fa318f7ca492f07a4ab76f850d19" url: "https://pub.dev" source: hosted - version: "0.45.0" + version: "0.43.1" stack_trace: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e4fe67a..7fe8aae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,6 +10,7 @@ environment: dependencies: cupertino_icons: ^1.0.8 drift: ^2.20.3 + drift_flutter: ^0.2.8 equatable: ^2.0.5 flutter: sdk: flutter