34 lines
1.8 KiB
Dart
34 lines
1.8 KiB
Dart
// 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);
|
||
});
|
||
}
|