// lib/database/database_connection/connection_native.dart import 'dart:io'; import 'package:drift/drift.dart'; import 'package:drift/native.dart'; import 'package:path_provider/path_provider.dart'; import 'package:path/path.dart' as p; // sqlite3_flutter_libs и sqlite3 импортируются для возможной тонкой настройки, // но часто NativeDatabase справляется автоматически. // import 'package:sqlite3_flutter_libs/sqlite3_flutter_libs.dart'; // import 'package:sqlite3/sqlite3.dart'; QueryExecutor connect() { print("Connecting to database using NativeDatabase (Lazy)"); // Используем LazyDatabase для отложенной инициализации на нативных платформах return LazyDatabase(() async { // Получаем папку для хранения документов приложения final dbFolder = await getApplicationDocumentsDirectory(); // Создаем путь к файлу 'db.sqlite' в этой папке final file = File(p.join(dbFolder.path, 'db.sqlite')); print("Database file path (Native): ${file.path}"); // Логируем путь для отладки // Настройка библиотеки sqlite3 (обычно не требуется для Android/iOS/macOS с sqlite3_flutter_libs) // if (Platform.isWindows || Platform.isLinux) { // // Может потребоваться дополнительная настройка для Desktop // // await applyWorkaroundToOpenSqlite3Library(); // } // Используем NativeDatabase для открытия соединения // logStatements: true полезен для отладки SQL-запросов return NativeDatabase(file, logStatements: false); }); }